home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
PD_THEMA
/
CLI
/
COMMAND
/
COMMAND.DOC
< prev
next >
Wrap
Text File
|
1998-03-14
|
118KB
|
2,771 lines
06101020705800
1Seite #
2
F0000000
9[........................................................]011
ëInhalt
Ç
1 Einleitung zu command.prg ........................................ 3
2 Allgemeine Hinweise zur Befehlseingabe ........................... 4
3 Allgemeine Befehle ............................................... 7
3.1 Besondere Befehle ............................................ 27
3.2 Zahlkonvertierungen .......................................... 28
4 Die ALIAS-Einrichtung ............................................ 29
4.1 Einführung ................................................... 29
4.2 ALIAS-Befehlssatz ............................................ 29
5 Die History-Einrichtung .......................................... 31
5.1 Einführung ................................................... 31
5.2 Die !-Befehle ................................................ 33
6 Das Batch-Processing ............................................. 34
6.1 Einführung ................................................... 34
6.2 Befehlssatz .................................................. 34
6.3 Beispiele .................................................... 41
6.3.1 Bsp.1 .................................................... 41
6.3.2 Bsp.2 .................................................... 42
6.3.3 Bsp.3 .................................................... 43
7 Variablen ........................................................ 44
7.1 Allgemeines zu den Variablen ................................. 46
7.2 Beispiel ..................................................... 47
7.2.1 Der File cc .............................................. 48
8 EDI .............................................................. 49
8.1 Die Kommandos von EDI ........................................ 49
9 Fehlermeldungen .................................................. 51
10 Die Ausgabeumleitung ............................................ 54
11 Allgemeines Blabla zum Schluß ................................... 55
11.1 Lieferumfang ................................................ 55
11.2 Zur Programmierung .......................................... 55
12 ANHANG A (Befehlszusammenfassung) ............................... 58
13 ANHANG B (oldy-Beispiele) ....................................... 61
13.1 Beispiel 1 für die Verwendung des oldy-Befehls .............. 61
Ç 13.2 oldy, die Zweite ............................................ 62
14 Index ........................................................... 63
ü
ë1 Einleitungzucommand.prg
9[........................................................]011
Ç
êcommand.prgÇisteinKommandointerpreter,deraufherkömmlicheArt(àla
MS-DOSo.ä.),alsoohneGEModerähnlicheBedienoberflächen,dieArbeit
mitdemATARIunterstützensoll.ErumfaßtdiedafürüblichenBefehle
wiez.B.fürdasFilekopieren,dasFilelöschenoderdieFileumbenen⑨
nung.
EinigeBefehlewurdenbeiUNIXabgeschaut.EinTeilderHistoryeinrich⑨
tungfindetinähnlicherFormunterVMSVerwendung.DieBefehlemüssen
viaTastatureingegebenwerden.EswirdzurBenutzungalsokein
GebrauchvonderMausgemacht!
ÜberdiebereitserwähnteHistoryeinrichtungistesmöglich,alte
Befehlerelativeinfacherneutaufzurufen,ohneeinekompletteNeuein⑨
gabederZeilevornehmenzumüssen.
ImFolgendenfindetsicheineZusammenstellungderBefehlemitBe⑨
schreibung,sowieeineErklärungzudenzusätzlichenFeatureswiez.B.
dasBatchprocessing.
êEsverstehtsichwohlvonselbst,daßichfürdaskorrekteFunktionie⑨
rendesProgrammskeineGarantieübernehme.Datenverluste,diedurch
auftretendeProgrammfehlerodereinefehlerhafteBedienungverursacht
wordensind,hatjederselbstzuverdauen!
GefundeneFehleroderProblemebitteichanmichweiterzuleiten(meine
Adressestehtim'AllgemeinenBlabla'-Abschnitt).
Ç
ë2 AllgemeineHinweisezurBefehlseingabe
ü
ÇDieEingabeeinesBefehlskannmitHilfederCursortasten,derüDELETEÇ-
Taste,derüESCÇ-TasteundderüBACKSPACEÇ-TasteüÇkorrigiertwerden!
üCONTROL-'<-'Çbzw.üCONTROL-'->'ÇbringendenCursorandenZeilenanfang/
dasZeilenende.
üSHIFT-'->'Çbzw.üSHIFT-'<-'ÇbringendenCursoreinWortnachrechts/
links.
üCONTROL-XÇvertauschtdasaktuellemitdemfolgendenZeichen.
üCONTROL-DÇlöschtalleZeichenvomPromptbiszurCursorposition.
üINSERTÇexpandierteinenEingabestring,wenneseinenFileimaktuellen
Ordnergibt,dermitdiesemStringbeginnt.
ManbefindetsichübrigensdieganzeZeitineinemEinfügemodus,d.h.
beimKorrigiereneinerZeilewerdenkeineZeichenüberschrieben.
ÜberflüssigeZeichenmüssenalsoexplizitgelöschtwerden!
DieüESCÇ-TastelöschtdiekompletteZeile.DieanderenTastenhabenihre
üblicheFunktion.
VieleBefehleerwartenmehrereArgumentangabenoderlassenmehrere
Argumentezu.DiesemüssenjeweilsdurcheinenBlankabgegrenztsein,
z.B.würde"dir*.prg*.tos"zuerstallePRG-FilesunddannalleTOS-
DateiendesaktuellenVerzeichnissesaufzeigen.
DemBenutzerältererVersionendesInterpretersfälltvielleichtauf,
daßdieAnmerkungnurBefehlseingabeninKleinbuchstabenvorzunehmen,
nichtmehrvorhandenist.DieseRestriktionhabeichentfernt.Es
könnenjetztEingabeninGroß-undKleinschreibungerfolgen.
Manmußallerdingbeachten,daßbeieinerEingabederersteStringin
Kleinbuchstabenumgewandeltwird,dieArgumentangabenbleibenunverän⑨
dert.
üACHTUNG!
ÇIchbininzwischendazuübergegangen,BefehleausdemInterpreterzu
entfernen.EshandeltsichdabeiausnahmslosumKommandos,diedurch
andereeinfachnachgebildetwerdenkönnen(z.B.ühideÇ).DerGrundliegt
einmalinderErsparnisvonSpeicher.DasProgrammbelegtinder
jetzigenFormmitVariablenundPufferbereichenfast100kBRAM.Essind
bereitsLeutegekommen,diewegendiesesUmfangsSpeicherprobleme
bekommenhaben.ZweitenshatdieVielfaltderKommandosnichtbesonders
ÇzurÜbersichtlichkeitbeigetragen.Eswurdenaberwirklichnurdoppelt
gemoppelteKommandosentfernt.DieBeschreibungenthältandenrelevan⑨
tenStellenHinweise,wiemandieseBefehlenachbildenkann!
BeiderfolgendenBefehlsbeschreibungsind'ê[]Ç'-Argumentangabenals
optionalzuverstehenund'ê<>Ç'alszwingend.SindArgumentez.B.durch
'(s)'alsPluralgekennzeichnet,bedeutetdies,daßmehrereArgumente
angegebenwerdenkönnen(nichtêmüssenÇ).
EsgibteineganzeReihevonFehlermeldungen,dieesdemBenutzer
erleichternsollen,einenFehlerbzw.einaufgetretenesProblemzu
erkennen.DurchdieVerbindungeinerFehlermeldungmiteinerFehlernum⑨
mer,istderBenutzervonBatchdateieninderLage,aufbestimmte
Situationenindividuellzureagieren.
EineweitereFähigkeitdesInterpreterssollauchschonandieser
StelleErwähnungfinden.MankannvonihmausexterneProgramme
aufrufen.KanneineingegebenesKommandonichtalsinternerBefehl
erkanntwerden,wirdversucht,obeseinProgrammgibt,daßdiesem
Befehlsnamenentspricht.IstdiesderFall,wirdesaufgerufen(das
beziehtsichaufTOS,TTPundPRG-Dateien).Programme,diesichim
aktuellenVerzeichnisbefindenunddieaufgerufenwerdensollen,müssen
nichtmitihremvollenNamenbezeichnetwerden!Eswirddaserste
Programmgestartet,daßmitdemeingegebenenTeilstringübereinstimmt
undeinederobigenExtensionshat.
DieEinschränkungmitdemêaktuellenÇVerzeichnisbestehtabdieser
Versionnichtmehr,d.h.auchProgrammeausanderenOrdnernund
LaufwerkenkönnenviaTeilstringaufgerufenwerden!Fürdienotwendige
EindeutigkeitmußderBenutzerallerdingsselbersorgen.
Sollz.B.einProgramm'programm.tos'aufgerufenwerden,genügtes
'programm'odersogarnochwenigerZeicheneinzugeben,umeszu
starten.
Esverstehtsichwohlvonselbst,daßeingegebeneArgumenteandiese
Programmeweitergegebenwerden.
DerBenutzerkannmithilfedesüpathÇ-BefehlsbestimmteSuchpfadeange⑨
ben,diederInterpreteraufderSuchenacheinembestimmtenProgramm
abklappert.
IndenVorgängerversionendesInterpreterswurdenachdemLaufeines
'.PRG'-ProgrammsderBildschirmgelöscht.DiesesVerhaltenfanden
allerdingseinigeLeutenichtsobesonderstoll.AusdiesemGrundwird
nunkeineLöschungmehrvorgenommen.DerCursorbefindetsichnachdem
ProgrammlaufinderletztenZeile(dieallerdingsgelöschtwird).Obes
nununterUmständenzukleinerenUnschönheitenmitdemMauszeiger
kommt,bleibtabzuwarten.
ÇDieBefehleinderfolgendenBeschreibungsinddurcheinvorangestell⑨
tes'ü->Ç'undeineeinfacheUnterstreichungkenntlichgemacht.
DaeszahlreicheKommandosgibt,dienurdurcheineAbkürzungrepräsen⑨
tiertsind(z.B.ücpÇfüräcopyÇ),werdendortdievollständigeAusschrei⑨
bungderKommandosangegeben.Diesscheintmirfüreineinfacheres
EinprägenderBefehleförderlichzusein.
DurchhäufigenGebrauchvonBeispielenhabeichversucht,dieBefehle
undihreFunktiontransparenterzumachen.EinigedieserBeispiele
enthaltenHinweise,diezueinerbequemerenHandhabungdesInterpreters
führensollen.Esistdahernichtganzsinnlos,sichmitdiesem
zusätzlichenGeschwafelauseinanderzusetzen.
ë3 AllgemeineBefehle
Ç
♪②ê->?ok
ÇDiesenBefehlunddenzugehörigenFileêchecksum.datÇgibtesnichtmehr.
EskonntepraktischjederdieZahlinderangesprochenenDateiändern
undsoeineWarnungprovozieren,alsohatdasKommandoseinenSinn
leiderverfehlt.IchmöchteandieserStellenochaufdieinzwischen
dochrechtzahlreichvorhandenenPD-Programmehinweisen,dieein
ErkennenvonVirenzulassen.DieVerwendungeinessolchenProgrammssei
jedemnurwärmstensempfohlen!
♪②ê->bell
ÇDieserBefehlläßtdenATARIeinmal'klingeln'.Mankannmitdiesem
Kommandoz.B.dasEndeeinerBatchfilebearbeitungakustischhervorhe⑨
ben.
♪③ê->cat<file(s)>
Ç(kompletterName:äconcatenateÇ)
GibtdenInhalteinesASCII-Text-FilesaufdenBildschirmaus.Die
Ausgabekannjederzeitmitü^ZÇabgebrochenwerden.DerBefehlerlaubt
es,mehrereDateienanzugeben.
BeimVersuchz.B.eineProgrammdateiauszugeben,brichtnatürlichdas
Chaosaus!
DurchüF1Ç(damitistdieFunktionstastegemeint)kanndieAusgabe
angehaltenwerden,durcherneutenDruckaufüF1Çwirdsiewieder
fortgesetzt.
MankanndiesesKommandoübrigensauchaufandereVerzeichnisseund
Laufwerkeanwenden!
♪⑤BEISPIEL:
cat*.c
Hierwerdenalle'C'-Dateienausgegeben.
♪③catcommand.txttest.txt*.dat
EswirderstderFile'command.txt'ausgegeben,danndieDatei
'test.txt'undzumSchlußalle'dat'-Files.
♪③cat/test/*.dat
Ausgabealler'dat'-Files,diesichimOrdner'test'befinden.
♪③ê->cd<directory>
Ç(kompletterName:ächangedirectoryÇ)
DiesesKommandowirdzumWechselnvonVerzeichnissenbenutzt.
ÇSollzueinemOrdnergewechseltwerden,dersichimaktuellenDirectory
befindet,genügtes,dieerstenBuchstaben(bisEindeutigkeitherge⑨
stelltist),einzugeben.
EswirdimmerdasêersteÇVerzeichnisangesprungen,daßmitdiesem
Teilstringübereinstimmt.
Esistabundzuschonvorgekommen,daßbeimWechselnvonLaufwerken,
zwarsogetanwird,alshätteeinsolcherstattgefunden,mansichaber
inWirklichkeitimmernochandergleichenStellebefindet.Hier
scheinteseinProblemimTOSzugeben(GEMDOS-RoutineüDsetdrvÇ).Dieses
VerhaltenhabeichallerdingsbishernurbeiFloppylaufwerkenbeobach⑨
tenkönnen.RamdisksoderverschiedenePartitionseinerHarddisk
bereitenkeineProbleme.IchmöchtemitdiesemHinweisallerdingsnicht
sagen,daßjetztdauerndmitdieserêNichtwechseleiÇzurechnenist,also
keinePanik!
♪⑤BEISPIEL:
cdsubdir
WechseltvomaktuellenVerzeichnisindasUnterverzeichnis'subdir'.
♪③cda:bingo
WechseltdasLaufwerk,vomaktuellenLaufwerkaufLaufwerkA,undgeht
dortindenOrdner'bingo'.
♪③cd..
VomaktuellenUnterverzeichniswirdindasVerzeichnisgegangen,daß
sicheineEbeneüberdemUnterverzeichnisbefindet.Verhältsichalso
analogzueinemAnklickenderoberenlinkenFenstereckeunterGEM.
♪③cd/(odercd\)
WechseltindasWurzelverzeichnisdesaktuellenLaufwerks.
♪③cdd:
WechseltnurdasLaufwerk.DieEingabevon'd:'bewirktübrigensdas
gleiche(s.u.).
ê
♪③->chmod<file><mode>...<file><mode>
Ç(kompletterName:ächangemodeÇ)
DieserBefehlkannzurÄnderungvonFileattributenbenutztwerden.Bei
denFileangabenkannmit'*'gearbeitetwerden.'mode'repräsentiert
eineIntegerzahl,diedasneueAttributdarstellt.
MansolltebeiVerwendungdiesesBefehlsetwasVorsichtwaltenlassen.
ÇIchhabez.B.malauseinemnormalenêauto.comÇ-FileeinVolumelabel
gemacht.LeiderhatdieRückführungineinenormaleDateinichtmehr
funktioniert.DasBetriebssystemisthierleiderziemlichrestriktiv
ausgelegt!
Esistmirbisjetztauchnochnichtgelungen,Verzeichnissenz.B.das
êreadonlyÇ-Attributzuvergeben(wasjaalsSchutzfunktionrecht
nützlichwäre).IrgendwiehatmanaufsolcheEinträgekeinenZugriff
viaüFattrib()Ç.
AndieserStelleisteineZusammenstellungderBitsundihrerBedeutung
wohlganzhilfreich:
Bit0:Dateiistschreibgeschützt
Bit1:Dateiistversteckt(wenigstenseinbißchen)
Bit2:eshandeltsichumeineSystemdatei(habebisjetztnoch
keinegefunden)
Bit3:Volumelabel(kannmanz.B.beimFormatierenangeben)
Bit4:Verzeichnis
Bit5:istdasArchivbit(KennungüwcÇ)
UmdieentsprechendeEigenschaftzubesitzenmußdasjeweiligeBit
gesetztsein!
♪⑤BEISPIEL:
chmod*.prg1
AllenPRG-DateienimaktuellenOrdnerwirddasênurlesenÇ-Attribut
verliehen.
♪③chmod*.prg1*.txt0
PRG-FileswerdenmitdemênurlesenÇ-Attribut,TXT-Dateienerhaltendas
normaleSchreiben/Lesen-Attribut.
♪③ê->cls
Ç(kompletterName:äclearscreenÇ)
EswirdmitdiesemBefehlnurderBildschirmgelöscht.
♪③ê->cmp<fileA><fileB>
Ç(kompetterName:äcompareÇ)
VergleichtdenInhaltzweierFilesmiteinander.Istdiesergleich,wird
nichtszurückgemeldet,ansonsteneinêfilesdifferÇ.
EsistbeidiesemBefehlmöglich,sichaufandereLaufwerkeundandere
Ordnerzubeziehen.
Wemesabundzuschonpassiertist,daßeinscheinbarkorrekt
abgelaufenerKopiervorgangdochnichtsorechtfunktionierte,wird
diesenBefehlzuschätzenwissen.
♪√ÇBEISPIEL:
cmpc:command.txta:command.txt
VergleichderbeidenDateien,diesichaufunterschiedlichenLaufwerken
befinden.
♪③cmpcommand.txtcommand.txt
DieserBefehlwirdnichtausgeführt,dadavonauszugehenist,daßes
sichumeinunddenselbenFilehandelt.
♪②ê->compress<file(s)>
ÇDiesesKommandokomprimiertDateien.DieAusgabefilesbesitzendie
Extension'CPR'.
DieursprünglichenFileswerdenmitüexpandÇwiedererzeugt.
DasErgebnisderKompaktierungistallesinallemnichtbesonders
berauschend,abereinbißchenschautschondabeiheraus.
SolltejemandaufeinewirklicheffektivarbeitendeKompaktierung
angewiesensein,somöchteichdiesenaufProgrammewieäARCÇoderäZOOÇ
verweisen.
ÄltereVersionendesKommandointerpreterskonntennurreineASCII-
Textdateienpacken.DieseEinschränkunggiltnichtmehr.DieserVorteil
hatallerdingseinenkleinenHaken,redundanteTextewiez.B.Leerzei⑨
len,dienurBlanksenthaltenoderZeilen,diemitBlanksaufhören,
werdennichtmehrentfernt!NachderErweiterungmitüexpandÇhatman
alsowiederdenursprünglichenFilevorsich.
DasVerfahren,dashinterdiesemKommandostehtistübrigensganz
einfach:eswerdenalleStrings,dieausmehralszweigleichenZeichen
bestehen,zudreiByte-Stringszusammengefaßt.
BesondersguteOpferfürdiesenBefehlsindmitdemEditorTEMPUS
erstellteDateien.DadieserleidernichtinderLageist,vernünftig
mitTAB-Zeichenumzugehen(undstattdessendasidiotischeATARI-
spezifischeZeichenbzw.dieeingestellteAnzahlvonBLANKsmacht),
bringthierdieKomprimierungschoneinigeBytesanErsparniss.Sollte
irgendwanneinmaleineVersiondieses,ansonstenwirklichguten,
Editorsherauskommen,dieeinebrauchbareEinbindungundVerarbeitung
vonTABbeinhaltet,bringtdieKomprimierungnatürlichauchnichtmehr
dieseErgebnisse.
♪⑤BEISPIEL:
compressbeispiel.txt
KompaktiertdieDatei'beispiel.txt'.DererzeugteFileheißt
'beispiel.cpr'.'beispiel.txt'selbstwirdênichtÇverändert!
♪²ê->cp<fileA><fileB>
Ç(kompletterName:äcopyÇ)
DieserBefehlwirdzumKopierenvonDateienbenutzt.'fileA'wirddabei
in'fileB'kopiert.
DerBefehlistsoausgelegt,daßinweitemUmfangaufandereLaufwerke
undVerzeichnissezugegriffenwerdenkann.DieVerwendungvon'*'
bieteteinzusätzlichesMaßanFlexibilität.
WährenddemKopiervorgangwirdangezeigt,welcheFilesgeradedupli⑨
ziertwerden.
SicherheitshalbersolltebeimKopiereninoderausVerzeichnissender
vollständigePfadangegebenwerden!
WirdnureinArgumentangegeben,soersetztdasProgrammdaszweite
durch'*.*'.
♪⑤BEISPIEL:
cpc:command.txtd:\subdir\*.*
IndiesemBeispielwirdderFile'command.txt'vomHauptdirectoryauf
LaufwerkCindasSubdirectory'subdir'aufLaufwerkDkopiert.
Eskannübrigensstatt'\'auch'/'verwendetwerden.
♪③cp*.prga:
KopiertallePRG-DateiendesaktuellenVerzeichnissesaufLaufwerkA.
♪③cp*.*d:/allefiles/*.*
HierwerdenalleFilesdesaktuellenOrdnersindasDirectory
'allefiles'aufLaufwerkDkopiert.
♪③cpc:xyz.dat
DerFile'xyz.dat'wirdvomLaufwerkCindasVerzeichniskopiert,in
demmansichgeradebefindet.DerNamederneuenDateiistdabeiauch
wieder'xyz.dat'.
♪③ê->crsoff
Ç(kompletterName:äcursoroffÇ)
SchaltetdenCursoraus.
♪③ê->crson
Ç(kompletterName:äcursoronÇ)
SchaltetdenCursorein.
♪②ê->crypt<keyA><keyB><fileA><fileB>
ÇMöchtemaneinenFilever-bzw.entschlüsseln,sokanndazudieser
ÇBefehlbenutztwerden.UmdiesenKodierungsvorgangzustarten,istes
notwendig,zweiZahlen('keyA'und'keyB')einzugeben.Nurmitdiesen
beidenZahlenkanneinverschlüsselterFilewiederdekodiertwerden!
'fileA'stelltdenzuver-/entschlüsselndenFiledar,'fileB'reprä⑨
sentiertdieErgebnisdatei.
üACHTUNGÇ,imLaufederZeit(oderbesser:derInterpreterversionen)sind
andiesemProgrammteilimmerwiederÄnderungenvorgenommenworden!Es
istdaherfürBenutzerdiesesBefehlsnotwendig,festzustellenobein
EntschlüsselnvonDateien,diemiteinerälterenVersionverschlüsselt
wordensind,nochmöglichist.Kanndiesnichtmehrdurchgeführt
werden,mußmandenfraglichenFileerstmitderälterenVersionwieder
inseinenUrzustandbringen!
WiesicherdieKodierungist,magjederselbstentscheiden.Diebeiden
SchlüsselsindvomTyp'long',damitergebensichschoneinigeKodie⑨
rungsmöglichkeiten.EskönnenübrigensauchgnegativeSchlüsselbenutzt
werden.
♪⑤BEISPIEL:
crypt1234711command.txtcommand.crp
DieDatei'command.txt'wirdinverschlüsselterFormimFile
'command.crp'abgelegt.Sollaus'command.crp'wiederderentschlüs⑨
selteFileentstehen,mußeinfach
♪③crypt1234711command.crpcommand.ent
eingegebenwerden.'command.ent'repräsentiertnundenentschlüsselten
File.EshättenatürlichauchirgendeinandererDateinamegewählt
werdenkönnen.
DerUrfile(indiesemFall'command.txt')wirdübrigenswedergelöscht
nochsonstirgendwieverändert!
♪②ê->date[dd.mm.yy]
ÇAusgabe/SetzendesDatums.
WirdkeinArgumentangegeben,wirdeinfachdasSystemdatumausgegeben,
sonsterfolgteineÜbernahmedesArguments.
♪⑤BEISPIEL:
date1.5.88
SetztdasSystemdatumaufden1.Mai1988.
♪③date
HierwirdnurdasSystemdatumausgegeben.
♪²ê->defkey<f-key><string>
Ç(kompletterName:ädefinekeyÇ)
BelegungderFunktionstastenmiteinemBefehl,derbeiDrückendieser
Tastenausgeführtwird.
'f-key'umfaßtdenBereichvon1bis20(naja,esgibthaltnur
zwanzigFunktionstasten),wobeiabNummer11dieêgeshiftetenÇTasten
gemeintsind,alsowirdz.B.Taste14duchüSHIFT-F4Çrepräsentiert.
♪⑤BEISPIEL:
defkey1dir*.prg
JederDruckaufüF1ÇführtjetztzumAufzeigenallerPRG-Dateienim
aktuellenVerzeichnis.
DieHauptanwendungfürdieseFunktiondürfteallerdingsimAufrufenvon
externenProgrammenmitbestimmtenParameternliegen:
♪③defkey12x.prg
üF12Ç(üSHIFT-F2Ç)führtnunzumStartendesProgramms'x.prg'.
ê
♪②->device
ÇAusgabederangemeldetenLaufwerke.
♪③ê->df
Ç(kompletterName:ädiskfreeÇ)
DiesesKommandozeigtdenfreienSpeicherplatzdesaktuellenLaufwerks
an.
♪③ê->dir[filedeskriptor(en)]
Ç(kompletterName:ädirectoryÇ)
Aufzeigenaller(bestimmter)DateieneinesOrdners.Eskönnenauch
Laufwerksbezeichnungenbzw.Ordnerangegebenwerden.
WirdkeinDeskriptorangegeben,werdenalleFilesausgegeben.Bei
AngabemehrererDeskriptoren,werdensukzessivealleentsprechenden
Dateienaufgezeigt.
ZusätzlichzudenFilenameerfolgteineAusgabevonErstellungsdatum,
GrößeundFileattribut.
DieAttributewerdensowohlinabgekürzterForm,alsauchalsInteger⑨
wert(inKlammern)ausgegeben.DieAttributabkürzungenundihreBedeu⑨
tung:
-ürwÇ=üRÇeadandüWÇrite
-üroÇ=üRÇeadüOÇnly
-ühiÇ=üHIÇdden
-üsfÇ=üSÇystemüFÇile
-üvlÇ=üVÇolumeüLÇabel
Ç -üdiÇ=üDIÇrectory
-üwcÇ=üWÇrittenandüCÇlosed
NatürlichkanneinFilemehrereAttributehaben(z.B.üwcÇundühiÇ).Es
werdendannalleaufgeführt.
♪⑤BEISPIEL:
dir
AusgabeallerDateiendesaktuellenVerzeichnisses.
♪③dira:
AusgabeallerFilesvomaktuellenOrdneraufLaufwerkA.
♪③dir*.prga*.*
AusgabeallerPRG-FilesunddanachallerDateien,diemit'a'beginnen.
♪③dir/megamax/
AusgabeallerDateienimVerzeichnis'megamax'.
♪②ê->echo[string]
ÇAusgabevon'string'aufdenBildschirm.WirdkeinStringangegeben,
erfolgtnurdieAusgabeeinerLeerzeile.
SinnvollistdiesesKommandoinBatchfiles.
♪⑤BEISPIEL:
echoNaprima!
Eswird'Naprima!'ausgegeben.
♪②ê->exit
ÇVerlassendesInterpretersundzurückzumDesktop.Dasgleichekannman
auchdurchDrückenvonü^CÇerreichen.
♪②ê->expand<file(s)>
ÇDieserBefehlstelltdieUmkehrungzuücompressÇdar.Erdientder
WiederherstellungvonmitücompressÇbehandelterDateien.DerErgebnis⑨
filehatdieExtension'EXP'.
♪②ê->find<file>
ÇEswirdimkomplettenFilesystem(alsoauchindenUnterverzeichnissen)
nach'file'gesucht.WirdeinepassendeDateigefunden,wirddiesemit
vorangestelltemPfadnamenausgegeben.
♪√ÇBEISPIEL:
find*.*
DiesesKommandowürdealleFileseinesLaufwerksmitdenzugehörigen
Verzeichnisnamenausgeben.
♪③find*.prg
DieserBefehlgibtallePRG-Filesaus,diesichaufdemaktuellen
Laufwerkbefinden.
♪②ê->flags
ÇAusgabediverserProgrammflags.DieseFlagswerdenspäter,bzw.immer
beidenBefehlenfürdiesierelevantsind,nocheingehenderbespro⑨
chen.
♪ZuordnungderKommandos:
"Errorbreak" Befehl:üerrorbreak
Ç "History" Befehl:üsrhist
Ç "ß=Beta" Befehl:üsz
Ç "Patchchange" Befehl:üpchange
Ç "Showbatchcommands" Befehl:ütextÇ/ünotext
Ç "Savehistory" Befehl:üsavehist
Ç "Printtitle" Befehl:üsrtitle
Ç "ExpandTAB" Befehl:üsrtab
Ç "Convertslash" Befehl:üslash
Ç "Linenumbers" Befehl:ünumbers
Ç
BeidiesenFlagswirddurchäonÇ/äoffÇangezeigt,obdieFunktiondes
entsprechendenBefehlsaktiviertistodernicht.
♪⑧DiefolgendeAuflistungzeigtdieVerbindungvonKommandos,dieSetUp
FunktionhabenundihreRepresentationinderFlag-Liste:
"TAB" Befehl:üsettab
Ç "Linesperpage" Befehl:ülppage
Ç "Margin" Befehl:ülpmargin
Ç "Startpage" Befehl:üpage
Ç "start:" Befehl:üsetlp
Ç "stop:" Befehl:üresetlp
Ç
♪②ê->free
ÇGibtdennochverfügbarenRAM-Speicherplatzaus.
♪³ê->head<file(s))
ÇDieserBefehlgibtdieerstenzehnZeilender/desangegebenenASCII-
Filesaus.DamitkannmansichaufrechteinfacheWeiseeinenÜberblick
überbestimmteFileinhalteverschaffen.
♪⑤BEISPIEL:
head*.c
AusgabedererstenzehnZeilenaller'c'-Dateiendiesichimaktuellen
Ordnerbefinden.
♪③heade:/subdir/datei.txt
AusgabedererstenzehnZeilenvonDatei'datei.txt',diesichim
Ordner'subdir'aufLaufwerkEbefindet.
♪②ê->help[command(s)]
ÇWirddieserBefehlohneArgument(e)eingegebeodereinfachdieüHELPÇ-
Tastegedrückt,erfolgteineAuflistungallerverfügbarenKommandos.
DieseAuflistungist(leider)nichtalphabetischgeordnet,sondern
entsprichtderReihenfolgeinderneueBefehledemProgrammhinzugefügt
wordensind.DasistzwarnichtbesondersschönaberzumVerschaffen
eineskurzenÜberblicksdürfteeswohlgenügenunddieprogrammtech⑨
nischenÄnderungenzumAusgebeneinergeordnetenListe,stehtwohlin
keinemsinnvollenVerhältniszumNutzen.
WirdallerdingseinArgument(odermehrere)angegeben,soerfolgtdie
AusgabeeinerKurzbeschreibung.
DieseBeschreibungenbefindensichinderDateiêcommand.hlpÇ,diesich
immerindemVerzeichnisbefindenmuß,vondemausderKommandoin⑨
terpreteraufgerufenwurde.
♪⑤BEISPIEL:
helpdirrm
EswerdendieKurzbeschreibungenzudenKommandosüdirÇundürmÇausgege⑨
ben.
♪②ê->hide<file>
ÇWollttemaneinenFilesokennzeichnen,daßeraufdemDesktopnicht
mehrerschien,konntediesinälterenInterpreterversionenmitdiesem
Befehlbewerkstelligtwerden.DiesesKommandogibtesünichtÇmehr!
MöchtejemandtrotzdemDateienverstecken,kannerdiesunterVerwen⑨
dungvonüchmodÇtun.EsmußbeidenDateienBit1(dezimal=2)gesetzt
sein,umeineühideÇ-Kennzeichnungzuerreichen,bzw.mußdiesesBitbei
normalsichtbarenDateiengelöschtsein.DasganzemitdemVerstecken
funktioniertallerdingsnur,wennwirklichnurdieseseineBitgesetzt
Çist!
UmeineDateientsprechendzukennzeichnen,mußmanalsoinZukunft
"chmod<datei>2"verwenden.
IchhabediesesKommandoentfernt,daeseinigeLeutegab,dielieber
einkürzeresProgrammhabenwolltenunddafürauf,zugegebenermaßen,
überflüssigeBefehlezuverzichtenbereitwaren.
♪②ê->inverse
ÇDieBildschirmdarstellungwirdinvertiert,d.h.warvorEingabedes
BefehlsdienormaleDarstellung,alsoschwarzaufweiß,aktiv,soist
dieDarstellungnunweißeSchriftaufschwarzemGrund.Wardie
Darstellungweißaufschwarz,wirdwiederaufdienormaleEinstellung
umgeschaltet.
EsgibteinigeProgramme,diefüreineInvertierungderBildschirmdar⑨
stellungsorgenohnedenOriginalzustandwiederherzustellen.Dieses
MankowirddurchüinverseÇaufgehoben.
♪②ê->keyboard
ÇAusgabederKommandos,diezumEditierenderEingabezurVerfügung
stehen.
♪③ê->keys
ÇDieserBefehlsorgtfüreineAuflistungderFunktionstastenbelegungen
(vgl.üdefkeyÇ).
♪②ê->lock
ÇMöchtemandenRechnereineWeileangeschaltetstehenlassen,aber
gleichzeitigSorgedafürtragen,daßihnkeinandererbenutzt,sokann
diesmitülockÇgemachtwerden.
NachEingabedesKommandoswirdderBenutzeraufgefordert,einPasswort
einzugeben.ZurBestätigungmußdieseEingabewiederholtwerden.Wares
jedesmaldasgleicheWort,meldetderRechner,daßerabgeschlossen
(êlockedÇ)ist.Willmannunweiterarbeiten,mußeinfacherneutdas
Passworteingegebenwerden.Istesfalsch,erfolgtkeineReaktion,
sonsterscheintwiederdernormalePrompt.
EinKnackendesSchutzeskannübrigensdurchdieüRESETÇ-Tasteoderdurch
einfachesAus-/Einschaltenerfolgen(klar,oder?).
♪③ê->lp<file(s)>
Ç(kompletterName:älineprinterÇ)
SolleineASCII-Datei(odermehrere)aufeinemDruckerausgegeben
werden,geschiehtdiesdurchdiesesKommando.HatmaneinenDrucker⑨
spoolerinBetrieb,istdaseinerechtnetteAngelegenheit.
AußerdemgibtesbeiVerwendungvonülpÇkeineProblememitTAB-Zeichen,
dasiekorrektexpandiertwerden(wenngewünscht).Esistaußerdem
möglich,eineTitelseiteauszugebenundvordemeigentlichenAusdruck
ÇundnachdessenAbschluß,eineSteuersequenzandenDruckerzuschicken
(vgl.auchüsettabÇ,üsrtitleÇ,üsetlpÇundüresetlpÇ).
EinStoppendesDruckvorgangskannjederzeitmitü^ZÇausgelöstwerden!
♪⑤BEISPIEL:
lpcommand.txt
AusdruckderDatei'command.txt'.
♪③ê->lpmargin[intvalue]
Ç(kompletterName:älineprintermarginÇ)
AnzahlderBlanks,diebeieinemAusdruckvordereigentlichenZeile
kommen.FehltdasArgument,istdieseFunktionausgeschaltet.
♪③ê->lppage[intvalue]
Ç(kompletterName:älineprinterpageÇ)
AnzahlderZeilenproSeitebeieinemAusdruck.WirdkeinArgument
angegeben,istdieseFunktionausgeschaltet.
BeieingeschalteterFunktion,wirdjeweilsnachErreichenderZeilen⑨
zahleinSeitenvorschubdurchgeführt.
♪③ê->ls[filedeskriptor(en)]
Ç(kompletterName:älistshortÇ)
DieserBefehlisteineAbartvonüdirÇ.Dortwirdeineausführliche
InformationsfolgezujedemFilemitausgegeben.Diesunterbleibtbei
ülsÇ.HierwerdennurdieDatei-bzw.Ordnernamenaufgelistet.
♪②ê->merge<fileA><fileB>
ÇDiesesKommandowirdzurVerbindungvonzweiASCII-Filesbenutzt.Dabei
wird'fileB'an'fileA'angehängt.'fileB'wirdênichtÇmodifiziert!
'fileA'und'fileB'dürfennichtdiegleicheDateidarstellen,d.h.der
Befehl"mergecommand.txtcommand.txt"würdenichtfunktionieren!
♪③ê->mkdir<dirname>
Ç(kompletterName:ämakedirectoryÇ)
DieserBefehlerzeugteinenneuenOrdner.Mansollteallerdingsnicht
vergessen,daßnureinebestimmteVerzeichnistiefezulässigist.Auch
das'40-Ordner-Problem'solltemanimAugebehalten.
NachderGenerierungdesneuenVerzeichnisses,findetmandortbereits
zweiEinträge,nämlich'..'und'.'.'.'stellteeinenVerweisaufden
Ordnerdar,'..'isteinVerweisaufdasdarüberliegendeVerzeichnis
(vglauch"cd..").
♪√ÇBEISPIEL:
mkdirschrott
EswirdimaktuellenDirectorydasneueUnterverzeichnis'schrott'
eingerichtet.Mit"cdschrott"undüdirÇkannmananschauen,welche
Dateiendabeierzeugtwordensind('.'und'..',welchesonst?).
♪②ê->more<file(s)
ÇÄhnlichdemücatÇ-KommandokönnenmitdiesemBefehleineodermehrere
ASCII-DateiinhalteaufdenBildschirmausgegebenwerden.DerUnter⑨
schiedzuücatÇliegtdarin,daßimmernureineBildschirmseiteausgege⑨
benwird.DannwirdangehaltenundaufdasDrückenderüSPACEÇ-Tastebzw.
vonRETURNgewartet.WirdüSPACEÇbetätigt,erfolgtdieAusgabeeiner
neuenSeite,beiüRETURNÇwirdzeilenweisefortgefahren.
DieAusgabekannjederzeitmitü^ZÇabgebrochenwerden.
DasKommandoerlaubtdenZugriffaufDateien,diesichinanderen
Ordnern/aufanderenLaufwerkenbefinden.
♪⑤BEISPIEL:
more*.pas
EswerdensämtlichePascalsourcefilesausgegeben(ichgehedabeidavon
aus,daßdieExtension'PAS'sichaufPASCALbezieht).
♪③morec:/duplikat/com.c
AusgabedesFiles'com.c'dersichaufLaufwerkCimVerzeichnis
'/duplikat/'befindet.
♪②ê->mouseoff
ÇDerSinndiesesunddesnächstenBefehlsmagaufdenerstenBlicknicht
einleuchten,aberessteckttrotzdemeinerdahinter.
DasKommandoschaltetdenMauszeigeraus.NormalerweiseistimInter⑨
preterdieserZeigersowiesonichtsichtbar.EsgibtaberProgramme,
diediesenZeigersehrwohlbenutzen,undhängtsichnunsolchein
Programmauf,kannesunterUmständenzueinemherrlichenDurcheinander
mitderMauskommen.
Wirdz.B.einProgrammmitderExtensionPRGaufgerufen,schaltetder
InterpreterautomatischdenMauszeigervordemProgrammaufrufein.
SchaltetdiesesProgrammnundiesenZeigerwiederausundihnauchbei
erreichendesProgrammendesnichtwiederein(wieesgentlemanlike
wäre),sogibtesProbleme,daderInterpreternachdemLaufdes
ProgrammsdenZeigerabschaltet,undzwarunabhängigdavon,oberein-
oderausgeschaltetwar.
Ichnehmemalan,daßdieProblematikbisjetztnochnichtsoganz
Çeinleuchtet,schließlichwillmanja,daßderMauszeigerverschwindet.
LeideristdasGEMabersoorganisiert,daßessichmerkt,wieoftder
Zeigerausgeschaltetwordenist,d.h.wirderzweimalausgeschaltet,
mußer,umwiedersichtbarzuwerden,auchwiederzweimaleingeschaltet
werden.DerInterpreterhatnunaberkeineAhnung,wieoftderZeiger
ausgeschaltetwurde.DerBenutzersolltenunselbstfüreineKorrektur
desProblemssorgen.Diesistnotwendig,wennmitAnwendungengearbei⑨
tetwird,diedenMauszeigerverwenden.Eskannsonstpassieren,daßin
einemsolchenProgramm,indemdieMausgebrauchtwird(z.B.einGEM-
Editor),keineauftaucht.EsmachtnichtvielSpaß,jetztwieein
blindesHuhnherumzuirren,bismanwiederausdemProgrammrauskommt
(wennmannichtliebergleichRESETdrückt).
Mansolltealso,fallsdasangesprocheneProblemaufgetauchtist,
solangedenMauszeigeranschalten(ümouseonÇ),biserwiedersichtbar
ist.DanngibtmaneinmalümouseoffÇeinunddieWeltistwiederin
Ordnung.NormalerweisereichtesübrigenszweimalümouseonÇeinzugeben.
DerAufwandbleibtalsoineinemvertretbarenRahmen.
♪②ê->mouseon
ÇDieserBefehlschaltetdenMauszeigerein.
ê
♪③->mv<fileA><fileB>
Ç(kompletterName:ämoveÇ)
ZumUmbenenneneinesFileswirddiesesKommandozurVerfügunggestellt.
Aus'fileA'wird'fileB'.
ümvÇkannmit'*'benutztwerden.Mansollteallerdingseinbißchen
aufpassen,dadieMöglichkeitenzumUnsinnanstellennichtzuverachten
sind.
♪⑤BEISPIEL:
mvoldie.daturoldie.dat
DerFile'oldie.dat'wirdindenFile'uroldie.dat'umbenannt.
♪②ê->numbers
ÇSchalteteinFlagein/aus,dasbestimmt,obbeieinemAusdruck
Zeilennummernausgegebenwerden.
üflagsÇkannzurÜberprüfungderaktuellenEinstellungbenutztwerden.
♪③ê->od<file(s)>
Ç(kompletterName:äoutdumpÇ)
MöchtesichderBenutzerbestimmteDateieninhexadezimalerSchreib⑨
weiseanschauen,sokannerdiesmitHilfediesesKommandostun.
Der/dieFile(s)werdenseitenweiseaufdemBildschirmausgegeben.Ein
AbbruchkanndurchDrückenvonü^ZÇerfolgen.
ÇDerBefehlistsoausgelegt,daßauchaufandereLaufwerkebzw.
Unterverzeichnissezugegriffenwerdenkann.
♪⑤BEISPIEL:
odcommand.txt
GibtdieDatei'command.txt'hexadezimalaus.
♪③od/megamax/headers/*.h
HexadezimaleAusgabealler'.h'-DateiendiesichimVerzeichnis
'/megamax/headers/'befinden.
♪②ê->page[intvalue]
ÇIstdieseFunktioneingeschaltet,wirdamSeitenanfangbeieinem
AusdruckderFilenameunddieaktuelleSeitennummerausgegeben.Das
ArgumentgibtdieStartseitennummeran.BeifehlendemArgumentistdie
Funktionausgeschaltet.
♪②ê->path<pfad(e)>
ÇAngabeeinesPfades,derzumAuffindeneinesProgrammesdurchsucht
werdensoll.EskönnenmaximalzwanzigPfadeangegebenwerden.
Programmnamenmüssen,fallssienichtimaktuellenVerzeichniszu
findensind,komplettangegebenwerden!Pfadnamenmüssendurch'/'
(bzw.'\')abgegrenztsein.Diesgiltallerdingsauch,wennessichnur
umLaufwerksnamenhandelt(z.B."patha:/c:/"),dannwirddort
allerdingsnurimHauptverzeichnisgesucht.
InvorhergehendenProgrammversionenerfolgtekeinSprungindiezu
durchsuchendenOrdner.DiesesMankohabeichnunbeseitigt.Diesgilt
allerdingsnurfürProgrammemitderExtensionê'.PRG'Ç!Ichsollte
vielleichtdenGrundfürdieseEinschränkungnennen:
IchbenutzeeinenbestimmtenOrdnerzurAufbewahrungvonTool-Program⑨
men,diemehroderwenigerdieEndungen'.TTP'haben.Nehmeichnun
diesenOrdnerindiezudurchsuchendenPfadeauf,wirdzwarbei
AuffindendesProgrammsindenOrdnergesprungen,aberdieArgumente
(inderHauptsacheFiles)befindensichhaltnichtdort,alsofunktio⑨
niertdasganzenicht.DadiemeistenBenutzerGEM-Anwendungenam
laufenhaben,diez.B.'RSC'-DateiennachladenunddiedieEndung
'.PRG'besitzen,dürftemanmitderEinschränkunglebenkönnen.
SelbstverständlichkanndieserautomatischeSprungindenzudurchsu⑨
chendenOrdnerauchabgeschaltetwerden(vgl.üpchangeÇ).DasKommando
verhältsichdannwieindenälterenInterpreterversionen.
Außerdemistesjetztauchmöglich,wieimHauptverzeichnis,nurnoch
TeilstringszumStarteneinesProgrammeseinzugeben.FürdieEindeutig⑨
keitdesAufrufsmußallerdingsderBenutzerselbersorgen!
Mansolltvielleichtauchnochbeachten,daßmitderAnzahlderzu
ÇdurchsuchendenVerzeichnisseauchdieZeitbiszurAuffindungbzw.bis
zurMeldung,daßeinProgrammnichtgefundenwerdenkann,steigt!
DieSuchenacheinemProgrammgeschiehtinfolgenderReihenfolge:
1.wennALIAS-Eintrag,dannUmwandlung
2.wennmitPfadangabe,dannAusführung
3.wenninaktuellemVerzeichnis,dannAusführung
4.diemitüpathÇfestgelegtenWegeabsuchenundggf.Ausführung
eswirddabeidieArgumentfolgeinReiheabgesucht!
DieBedeutungvonALIASwirdineinemextraAbschnitterläutert!
DaichkeinrechtesVertrauenindieFähigkeitendesTOShabe,
existiertbeimWechselnderPfadeeinKontrollmechanismus,derbei
einemfehlerhaftenOrdneransprungeineWarnungausgibt.Diessollte
eigentlichniederFallsein,abermansollnieniesagenwasdasTOS
betrifft.
♪⑤BEISPIEL:
path/erste/a:/c:/oben/unten/
EinexternesProgrammwürdeindiesemFallerstimaktuellenVerzeich⑨
nisgesuchtwerden.Kannesdortnichtgefundenwerden,wirdversucht,
esimOrdner'/erste/'zufinden.Istesauchdortnichtvorhanden,
wirdzumHauptverzeichnisaufLaufwerkAgegangen.Beieinemweiteren
FehlschlagwirdnunnochaufLaufwerkCimDirectory'/oben/unten/'
gesucht.
♪③path
OhneArgumentewirdnurdereingestellteSuchpfadausgegeben.
♪③ê->pchange
Ç(kompletterName:äpathchangeÇ)
SchaltetdenPfadwechseldesüpathÇ-Kommandosein/aus.MitüflagsÇkanndie
aktuelleStellungüberprüftwerden.VoreingestelltistdasWechselnder
Directories.
♪③ê->pwd
Ç(kompletterName:äprintworkingdirectoryÇ)
DieserBefehlzeigtdenaktuellenPfadan,indemmansichgerade
befindet.
♪②ê->reset
ÇDerRechnerführteinenResetaus.
♪²ê->resetlp[intvalue(s)]
Ç(kompletterName:äresetlineprinterÇ)
DieserBefehlwurdebereitsbeimülpÇ-Kommandoerwähnt.WirdülpÇzum
AusdruckvonDateienbenutzt,wirdvorodernachdemeigentlichen
DruckvorgangeineSteuersequenzandenDruckergeschickt(z.B.Schrift⑨
größeodereinInitialisierungskommando).
üresetlpÇistnunfürdieSequenzzuständig,dienachdemAusdruckanden
Druckergeschicktwird.MöchtederBenutzer,daßkeinesolcheFolge
geschicktwird(Defaulteinstellung),mußereinfachüresetlpÇeingeben.
MitüflagsÇkannmansichdieaktuellgültigeSteuersequenzanschauen.
♪⑤BEISPIEL:
resetlp122864
DieseSequenzsorgtnachAbschlußeinesAusdrucksfüreinenSeiten⑨
vorschubundderUmschaltungaufdieGrundeinstellungeinesNEC-P6-
Druckers.
♪③ê->rm<file(s)>
Ç(kompletterName:äremoveÇ)
ZumLöschenvonDateienfindetdieserBefehlVerwendung.Eskönnen
damitsowohlganzeFilegruppenalsauchnurbestimmteEinzeldateien
entferntwerden(VerwendungvonäWildcartsÇistmöglich).
MansolltebeiBenutzungdesKommandoseinbißchenaufpassen,sonst
löschtmanDateien,diemaneigentlichnochbraucht.
DieserBefehlerlaubtdenZugriffaufandereVerzeichnisseundLauf⑨
werke.
Eskannvorkommen,daßFilesvordemLöschengeschütztsind(Attribut:
ênurlesbar)Ç.DerBefehlistnichtinderLage,solcheDateienzu
entfernen(vgl.auchüsaveÇundüunsaveÇ)!
♪⑤BEISPIEL:
rm*.*
HierwerdenalleFilesgelöscht.
♪③rm*.prgcommand.txt
HierwerdenerstallePRG-Dateienentfernt,imAnschlußdaranderFile
'command.txt'.
♪③rmc:/copy/c_files/
AufLaufwerkCwerdenalleDateienimUnterverzeichnis'/copy/c_files/'
gelöscht.
♪²ê->rmdir<dirname>
Ç(kompletterName:äremovedirectoryÇ)
Eskannvorkommen,daßOrdnerentferntwerdensollen.Dergeeignete
BefehlfindetsichinürmdirÇ.DerzulöschendeOrdnermußallerdings
leersein!
♪⑤BEISPIEL:
rmdirschrott
DieseEingabebewirkteinEntfernenvonDirectory'schrott'.
♪③ê->save<file(s)>
ÇFiles,aufdiedieserBefehlangewandtwird,sindnurnochlesbar.
RückgängiggemachtwerdenkanndiesesKommandomitüunsaveÇ.
Mansolltebeachten,daßesProgrammegibt,dieaufsolchermaßen
geschützteDateienmitdemfrohenWerfenvonBombenreagieren.Esmuß
alsovorVerwendungsolcherProgrammeüunsaveÇbenutztwerden!
♪③ê->savehist
Ç(kompletterName:äsavehistoryÇ)
PerDefaulteinstellungwirdbeimVerlassendesInterpreterseinFile
êhistory.datÇangelegt,indemsichdiezuletztgemachtenEingaben
befinden.
DieserBefehlbewirktnuneinEin-/AusschaltendieserAbspeicherfunk⑨
tion.
MitüflagsÇkannbestimmtwerden,obsiegeradeeingeschaltetistund
kanndann,jenachBenutzerwunsch,umgeschaltetwerden(toggle-Funk⑨
tion).
♪③ê->setlp[intvalue(s)]
Ç(kompletterName:äsetlineprinterÇ)
DieanalogeFunktionzuüresetlpÇfindetsichindiesemBefehl.Diehier
angebbareSteuersequenzwirdvordemeigentlichenAusdruckanden
Druckergeschickt.Sollnichtsgeschicktwerden(default),isteinfach
wiederüsetlpÇeinzugeben.
MitüflagsÇkanndiegültigeSteuersequenzangeschautwerden.
♪③ê->settab<intvalue>
Ç(kompletterName:äsettabulatorÇ)
EineweitereFunktion,diedenAusdrucksteuert,wirddurchdieses
Kommandoabgedeckt.DerBenutzeristhiermitinderLage,dieTabula⑨
torweitezubestimmen(defaultmäßigauf8Zeichen).DieminimaleWeite
liegtbeizweiZeichen!
üsettabÇbeeinflußtübrigensnichtnurDruckerausgaben.AuchAusgabenviaü
catÇoderümoreÇbenutzendieeingestellteTabulatorweite!
DieserBefehlhatbeiListingsnatürlichnureineBedeutung,wenndas
ÇTabulatorflag,daßangibtobTABoderdieentsprechendeAnzahlBlamks
gesendetwird,gesetztist.
üflagsÇzeigtdieaktuelleTabulatorweitean.
♪②ê->slash
ÇNormalerweisekannmanstatt'\'auch'/'benutzen(z.B.beiücdÇ).Es
gibtaberexterneProgramme,diemitArgumentengefüttertwerden
können,dieein'/'enthalten.DaderInterpreter'/'inein'\'
umwandelt,kanneshierzuProblemenkommen.MitüslashÇkanndiese
Konvertierungein-bzw.ausgeschaltetwerden.
MitüflagsÇkannderaktuelleZustandangeschautwerden.
ê
♪③->srhist
Ç(kompletterName:äset/resethistoryÇ)
NormalerweisewerdendieletztenfünfzigEingabenineinerHistoryta⑨
bellegehalten.DamitistderBenutzerinderLage,aufeinfacheWeise,
aufdieseKommandosBezugzunehmen(s.u.).
UmdieseEintragungenein-/auszuschalten,kanndieserBefehlbenutzt
werden.
MitüflagsÇkannderaktuelleStanddesentsprechendenFlagsangeschaut
werden.üsrhistÇerzeugtdanndieentgegengesetzteStellung.
FindenkeineEintragungenindieHistorytabellestatt,erscheintder
Eingabezählerinvers.
ê
♪③->srtab
Ç(kompletterName:äresettabulatorÇ)
Normalerweise(default)sendetderBefehlülpÇkeineTAB-Zeichenanden
Drucker,sondernexpandiertdieseZeichenkorrektundschicktdie
entsprechendeAnzahlBlanks.DieserBefehlkannnunzumSet⑨
zen/RücksetzendieserFähigkeitbenutztwerden.
MitüflagsÇkanndieaktuelleEinstellungüberprüftwerden.
♪③ê->srtitle
Ç(kompletterName:äset/resettitleÇ)
NunzumvorletztenBefehl,mitdemeinDruckerlistingbeeinflußtwerden
kann.DefaultmäßigwirdvorjedemAusdruckeinTitelblatterzeugt,auf
demderFilenamensteht.Istdiesjedochnichtgewünscht,kannmit
üsrtitleÇdieseMöglichkeitabgeschaltet(oderauchwiedereingeschaltet)
werden.
MitüflagsÇkannmalwiederderaktuelleZustanddesentsprechendenFlags
angeschautwerden.
♪②ê->string<filedescriptor><string>
ÇDieserBefehldientdemAbsuchenvonDateiennacheinerbestimmten
Zeichenfolge.EskanndabeisowohlnureineDateialsauchmehrere
angesprochenwerden(über'*').DerSuchstringmußzwischenzwei
ÇgleicheZeicheneingeschlossensein!DerBefehlbeziehtsichimmerauf
dasaktuelleVerzeichnis.
DiemaximaleLängeeinessolchenStringsbeträgtêzwanzigÇZeichen.
Überschreiteterdiese,erfolgteineKürzungaufdieseZeichenlänge!
♪③BEISPIEL:
string*.*/Ohsolemio/
EswerdenalleDateiendesaktuellenOrdnersnachdemString'Ohsole
mio'abgesucht.WirdderStringineinemFilegefunden,wirdeine
entsprechendeMeldungausgegeben.
♪③stringcommand.txt*Bingo*
IndiesemFallwirdderFile'command.txt'nachdemString'Bingo'
abgeklappert.
Mansieht,daßdieArgumentbegrenzungenvölligverschiedenseinkönnen,
imoberenBeispiel'/',imunteren'*'.Siemüssennurbeider
jeweiligenEingabeübereinstimmen.Esverstehtsichwohlvonselbst,
daßdieseBegrenzungennichtimeigentlichenSuchstringenthaltensein
dürfen!
♪②ê->sz
ÇDerletzteBefehlzurDruckersteuerung.ErentstandausdemMangel
meinesDruckers,einvernünftiges'ß'machenzukönnen.
IstdasentsprechendeFlaggesetzt,wirdeinfachderCodefüreinBeta
(225)geschickt,wennimTextein'ß'vorkommt.IstdasFlagnicht
gesetzt,wirddereigentliche'ß'-Codegeschickt(158).
MitüflagsÇkanndieFlagstellungüberprüftwerden.Defaultmäßigist
diesesFlagübrigensgesetzt,alsowirdBetageschickt!
♪②ê->time[hh:mm]
ÇDasSetzenbzw.AbfragenderUhrzeitgeschiehtmitdiesemKommando.
WirdkeinArgumentangegeben,soerfolgteineAusgabederaktuellen
Systemzeit,sonstwirddasArgumentalsneueSystemzeitübernommen.Bei
derAusgabewerdenauchdieSekundenangegeben.BeimSetzendürfen
diesenichtangegebenwerden!
♪⑤BEISPIEL:
time12:4
SetzenderUhrzeitauf12Uhr4Minuten.DieSekundenwerdenautoma⑨
tischaufNullgesetzt.
♪②ê->tree
ÇAusgabeallerOrdnerundUnterordnereinesLaufwerks.
Ç
♪②ê->unsave<file(s)>
ÇFiles,dienurlesbarsind,alsonichtgelöschtwerdenkönnen,werden
durchdiesesKommandoentschützt.DerumgekehrteBefehlistüsaveÇ.
♪②ê->version
ÇDiesesKommandogibtdasErstellungsdatumaus.Esexistiertkeine
Versionsnummermehr!
♪③ê->wc<file(s)>
Ç(kompletterName:äwordcountÇ)
InteressiertmansichfürdieAnzahlvonZiffern,ZeilenundZeichen
einesFiles,sofindetdieserBefehlVerwendung.Allesinallemkein
besonderswichtigesKommando.
♪③ê3.1 BesondereBefehle
Ç
DiefolgendenvierBefehlediezumErzeugeneinesASCII-Filesbenutzt
werdenkonnten,gibtesênichtÇmehr:
ê
Ç êopen<file>
Ç êwrite<string>
Ç êappend<file>
Ç êclose
Ç
DiesstelltallerdingskeineEinschränkungbeidereinfachenKreierung
vonTextdateiendar.IchmöchtedenBenutzeraufdenAbschnitt,der
sichmitderêAusgabeumleitungÇbefaßt,verweisen.DieVerbindungdieser
MöglichkeitmitdemüechoÇ-BefehlerlaubtêsämtlicheÇAktionendervier
weggefallenenBefehle.
DerGrundfürdasStreichenderKommandoswarwiederderVersuch,den
InterpreteretwaskompakterzumachenundredundanteBefehle,dienur
einenunnötigenBallastdarstellen,zuentfernen.Ichglaube,daß
zumindestindiesemFallkeineEinschränkungfürdenBenutzergegeben
ist.
♪②MöchtederBenutzerdasLaufwerkwechseln,kannerdazudenücdÇ-Befehl
benutzen,diesistabernichtunbedingtnotwendig.Esistauchmöglich,
diesenWechseleinfachdurchLaufwerkskennungundanschließendenDop⑨
pelpunktvorzunehmen.
♪④BEISPIEL:
a:
WechselzuLaufwerkA.
Ç
♪③ê3.2 Zahlkonvertierungen
Ç
Eskommtabundzuvor,daßZahlumrechnungenvorgenommenwerdenmüssen.
DerInterpreterstellthierdreiFunktionenzurVerfügung:
♪②ê->#<decvalue>
ÇEingabeeinerDezimalzahlundderenUmrechnungindashexadezimaleund
oktaleÄquivalent.
♪②ê->$<hexvalue>
ÇEingabeeinerhexadezimalenZahl.AlsResultatwerdendiedezimalenund
oktalenÄquivalenteausgegeben.
♪②ê->\<octvalue>
ÇUndalsletztesdieUmrechnungfüroktaleZahlen.Mankannhier
übrigenseinProblemerkennen,daßeventuellauftritt,wennmit'\'ein
Programmaufgerufenwerdensoll.ImZweifelsfallmußmaneinfachnur
dieLaufwerksbezeichnungmitangegebenodermit'/'arbeiten.
ë4 DieALIAS-Einrichtung
Ç
ê4.1 Einführung
Ç
DerKommandointerpreterbietetdemBenutzerdieMöglichkeit,bestimmte
Befehleumzubenennen.WirdzumBeispielöfterseinspeziellesProgramm
aufgerufen,kanndieserAufrufumbenanntwerden.
SeidasProgramm'xcompiler.prg'immerwiederaufzurufen,kanndieses
Kommandoz.B.in'cc'umbenanntwerden(sinnigerweisegeheichin
diesemBeispieldavonaus,daßdieserominöse'xcompiler'einC-
Compilerist.'cc'wäresonsteinrechtverwirrenderName).Wirdein
EditoröfterszumEditiereneinesbestimmtenFilesaufgerufen(bei
einerProgrammerstellungpassiertdieseigentlichdauernd),kannder
normaleAufruf'editor.prgfile'einfachineinenkürzeren,z.B.
'edit',umbenanntwerden.
SchreibfauleNaturenundLeute,diemitderNamensgebungderinternen
Kommandosnichtbesondersglücklichsind,könnendurchdiesenMechanis⑨
musihreeigeneNomenklaturaufbauen.
SämtlicheUmbenennungenkönnenimFileêalias.datÇabgelegtwerden.Diese
DateiwirdzumProgrammbeginnvonêcommand.prgÇeingelesen(soweit
vorhandennatürlich).Diesfunktioniertallerdingsnur,wennsichdiese
DateiimägleichenÇVerzeichniswiederInterpreterbefindet!
êalias.datÇwirdübrigensbeimVerlassenvonêcommand.prgÇnichtautoma⑨
tischabgespeichert(vgl.üsavealiasÇ).
DiealternativenKommandonamenkönnenalsosofortgenutztwerdenund
müssennichtzujederSitzungneueingegebenwerden!
Esistnatürlichmöglichganzohneêalias.datÇauszukommenunddie
ErzeugungderUmbenennungendurcheinenBatchfilevorzunehmen.Der
bequemereWegerscheintmitjedochdieVerwendungdieserDateizusein.
♪④ê4.2 ALIAS-Befehlssatz
Ç
ê->alias[string(s)]
ÇAufzeigenalleraktuellgültigenUmbenennungenundihrerÄquivalente.
EsistauchdieselektiveAuswahleinesEintrags(bzw.mehrerer)
möglich.
ê
♪③->delalias<name>
Ç(kompletterName:ädeletealiasÇ)
LöscheneinesAlias-EintragsausderAlias-Liste.
♪②ê->getalias
ÇDerFileêalias.datÇwirdmitdiesemKommandoeingelesen.
♪³ê->newalias<new><old>
ÇUmbenennungvon'old'in'new'.DieserBefehldientalsozurAlias-
Erzeugung.
NeueEinträgewerdenübrigensnichtandieAlias-Listeangehängt,
sondernstehenimmeranersterStelle(Zeit-undCodeersparnis).
♪⑤BEISPIEL:
newaliasccxcompiler.prg
DieBeschreibungstehteigentlichschonindemobigenBlabla.Jede
Eingabevon'cc'wirdduch'xcompiler.prg'ersetzt.
♪③newaliasalalias
StattaliasführtnunauchüalÇzumAufzeigenderAlias-Einträge.
♪②ê->savealias
ÇAbspeicherndergültigenUmbenennungenimFileêalias.datÇ.Esmuß
beachtetwerden,daßdiesesAblegenderDateinichtautomatisch
erfolgt!
MankannsichübrigensmithilfeeinesBatchfileseineEnderoutine
schreiben,diemanzumVerlassendesInterpretersaufruftunddie
üsavealiasÇenthält.
ë5 DieHistory-Einrichtung
ê5.1 Einführung
Ç
EinweiteresBonbondesInterpretersistdieMöglichkeit,bereits
eingegebeneBefehleaufeinfacheWeiseerneutaufzurufen.Diesist
allerdingsaufdieletztenfünfzigEingabenbeschränkt.
UNIX-KennerndürftedieseEinrichtungundihreVorzügewohlhinlänglich
bekanntsein.
♪⑤EineinfachesBeispielsolldiepraktischeAnwendungdieserFähigkeit
aufzeigen.ZumErstelleneinesProgrammsinC,PASCALu.s.w.sindimmer
diegleichenSchrittenotwendig:
Editieren->Compilieren->Linken->Probelauf
MeisterfolgtzwischenCompilierenundLinkennocheineKurzvisitebeim
Editor,weilhaltdochnocheinkleinesFehlerchenimSourcecode
aufgetauchtist.
♪⑤DieKommandosfürdasBeispielseiennunfolgende:
77>edbsp.pas
Bedeutung:AufrufdesEditorszurBearbeitungdesFiles'bsp.pas'.
♪③78>pasbsp.pas
Bedeutung:AufrufdesCompilerszurObjektfileerzeugung.
♪⑤SolltenjetztFehlermeldungenaufgetauchtsein,geht'swiederzurück
zumEditor.Alsowieder
79>edbsp.pas
reinklopfenu.s.w.
Bevoresjetztweitergeht,sollteichvielleichtverraten,daßdie
ZahlenvordenBeispieleingabenvomInterpretergeliefertwerden.
DieserkleineHinweisistfürdasweitereVerständnisziemlichhilf⑨
reich!
♪②DurchdieHistoryeinrichtunggenügtes,wennderBenutzerbeiBefehl79
("edbsp.pas")einfachnur"!77"eingibt.EswirddannKommando77
erneutausgeführt.
EskannabernichtnurüberdieKommandonummernaufzurückliegende
EingabenBezuggenommenwerden;dieEingabe"!e"hätteauchzum
ÇWiederaufrufdesEditorsgeführt,d.h.eswirdbeidieserEingabenach
demletztenKommandogesucht,daßmitdemBuchstaben'e'begonnenhat,
und,fallsesgefundenwerdenkann,erfolgteinerneuterAufrufdesnun
expandiertenBefehls(hierwäredies"edbsp.pas").
DieMöglichkeit,alteKommandosüberdenAnfangsbuchstabenzurückzuho⑨
len,istnichtaufeinenBuchstabenbegrenzt.Eswirdnachdemletzten
Kommandogesucht,daßmitdemeingegebenenTeilstringübereinstimmt.
EinweiteresBeispielsolldasverdeutlichen:HatderBenutzerkürzlich
denBefehl"cpafilebfile"eingegebenundaufdiesenBefehlfolgend
dasKommando"cmpafilebfile",sowürdedurch"!c"derücmpÇ-Befehl
erneutaufgerufenwerden.DurchEingabevon"!cp"würdeaberein
eindeutigerBezugaufdenKopierbefehlgeschaffenunddieserausgeführt
werden.
Esistalsomöglich,durchbeliebiglangeTeileingabeneindeutige
ZuordnungenzuvorhergehendenBefehlenzubilden.Esseinocheinmal
daraufhingewiesen,daßsichinderHistory-Listenurdieletzten
fünfzigBefehlebefindenunddaßmannurdieseerneutdurchdie
History-Kommandosaufrufenkann.
JedeNeueingabewirdindieseListeeingetragen,dafürwirdderälteste
Eintragentfernt.NormalerweisemüßteaberderUmfangdergemerkten
Kommandosmehralsausreichendsein.
DasbishergesagtemöchteichmiteinemBeispielnochetwasanschauli⑨
♪⑦chermachen:
ü120>cpafilebfile
121>cmpafilebfile
122>!c
123>!cp
124>!121
Ç
EswerdenwiederücpÇundücmpÇverwendet.DieKommandos120und121müßten
eigentlichklarsein.Kommando122ruftdasletzteKommandoauf,daß
mitdemBuchstaben'c'begannauf,indiesemFallücmpÇ.Kommando123
ruftdenletztenBefehlauf,dermitdenBuchstaben'cp'beginnt,und
dasistKommando120.Befehl124beziehtsichnunexplizitaufein
Kommando,denücmpÇ-Befehl.
♪②Zusätzlichzudenü!Ç-KommandosgibtesnocheineweitereMöglichkeit,
aufalteEingabenzugreifenzukönnen:
WerschonaufeinerVAXunterVMSgearbeitethat,dürftemitder
VerwendungderüCURSOR-UPÇbzw.üCURSOR-DOWNÇ-TastenindiesemZusammenhang
vertrautsein.AuchdieserInterpretererlaubtesmitHilfedieser
Tasten,alteBefehlewiedersichtbarzumachen.Esistaußerdem
möglich,durchVerwendungderCursortastenundderbereitsamAnfang
erwähntenTasten,diesealtenKommandosfreizueditieren.
ÇVorhergehendeBefehlewerdenmitderüCURSOR-UPÇ-Tasteaufgerufen,ein
ZurückblätternwirddurchdieüCURSOR-DOWNÇ-Tastebewerkstelligt.
♪⑤ê5.2 Dieë!ê-Befehle
Ç
ê->h
Ç(kompletterName:ähistoryÇ)
DieserBefehlgibtalleinderHistory-ListestehendenEinträgeaufden
Bildschirmaus(dieEingabevonühistoryÇbewirktdasgleiche).
♪②ê->!<nr>
ÇHierwirddasKommandomitderNummer'nr'nocheinmalaufgerufen.
InVerbindungmitderfolgendenHistoryfunktion'ü!Ç<string>'mußan
dieserStelleleideraufeinenSchwachpunkthingewiesenwerden!Pro⑨
gramme,diemiteinemZiffernstringbeginnenunddienundurch
'!<ziffernstring>'erneutaufgerufenwerdensollen,kommenênichtÇzur
Ausführung(bzw.nurdann,wennzufälligerweisederZiffernstringmit
derKommandonummerübereinstimmt),d.h.ZahlendiesichaufKommando⑨
zeilenbeziehen,habenimmerVorrangvoranderenStrings!Dassollaber
nichtheißen,daßesunmöglichist,solchespeziellen'Ziffern'-
Eingabenzuwiederholen.NurmußmandannstatteinemAusrufezeichen
zweiverwenden!EinBeispielsolldieseProblematiketwasbeleuchten:
ü
101>1.prg
102>!!1
103>!1
ÇKommando101rufteinProgramm'1.prg'auf,102wiederholtdiesen
Aufruf.Nummer103führtzueinerFehlermeldung,daderBefehlmitder
Nummer1nichtmehrinderHistorytabellevorhandenist.
♪②ê->!<string>
ÇEssolldasletzteKommandogestartetwerden,daßmit'string'beginnt.
ManbeachtediebeimvorhergendenKommandoangesprocheneRestriktion
diesesBefehls!
♪②ê->!!
ÇDieletzteEingabewirdwiederholt.
ÄltereVersionendesKommandointerpreterserlaubtenstattzweiAusrufe⑨
zeichenauchdieVerwendungvonnureinem.Diesführtnunzueiner
Fehlermeldung!
ë6 DasBatch-Processing
Ç
ê6.1 Einführung
Ç
IchwillnunaufdienächsteFähigkeitdesInterpreterseingehen,die
AbarbeitungvonBatchdateien.
LeiderwirddieseMöglichkeitauchaufSystemen,diedafürbereits
'serienmäßig'eingerichtetsind,zuseltengenutzt.Liebergibtein
BenutzerimmerwiederdiegleicheBefehlsfolgeein,alssicheineDatei
zuerstellen,diedieseFolgeenthältunddieeinfachnuraufgerufen
werdenmuß.
IneinerBatchdateikannprinzipielljedesderbisherbesprochenen
Kommandosstehen.EsgibtnocheineganzeReiheweitererBefehle,die
denAblaufinnerhalbeinessolchenFilessteuern(z.B.Sprungmarken).
WirdineinemBatchfilevielgesprungen,bzw.findenSchleifendurch⑨
läufestatt,solltederFileineinerêRAM-DiskÇabgelegtundgestartet
werden.DasbringtzumeineneinengewissenZeitgewinnundnutztauf
deranderenSeitedieDiskettenichtsoab.Ichmöchteesnicht
unerwähntlassen,daßderInterpreterdenBatchfilenichtaufeinmal
einliestunddannabarbeitet,sondernKommandofürKommandoholt.
DadurchwirdetwasSpeichergespartunddieVerwaltungistumeiniges
einfacher.
DieAbarbeitungeinerBatchdateikannjederzeitdurchü^ZÇabgebrochen
werden!
BefehleeinesBatchfileswerdennichtindieHistory-Listeaufgenommen!
DieimFolgendenbeschriebenenBefehlekönnenzumTeilauchim
Direktmoduseingegebenwerden,diesistallerdingsbeieinigenKomman⑨
dosnichtsehrsinnvoll.
♪②üWichtigeÄnderung:
ÇIndenälterenVersionendesInterpretersgabesdiefesteingebaute
VariableücounterÇ.SeitEinführungderVariablen,istdieseundalle
ihreFunktionennichtmehrnotwendig.UmdenProgrammcodezukürzen,
habeichdeshalbdieseVariableentfernt.BenutzervonücounterÇ-
Befehlen,üÇmüssendiesedurchentsprechendeVariablenkommandosersetzen!
ê
♪④6.2 Befehlssatz
Ç
ê->batch<file>[arg0...arg9]
ÇAufrufeinerBatchdatei'file'.'arg0'bis'arg9'entsprechenStrings.
InnerhalbeinesBatchfileskönnenPlatzhaltergesetztwerden('$0'bis
Ç'$9').DiesewerdendurchdieStrings('arg0'bis'arg9')beieinem
AbarbeitendesBatchfilesersetzt.Dadurchwirderreicht,daßz.B.eine
Batchdatei,diedieCompilierungunddasLinkeneinesSourcefiles
zusammenfaßt,fürunterschiedlicheSourcefilesVerwendungfindenkann.
DieArgumentemüssenaufsteigendbei0beginnendeingesetztwerden,
d.h.jedes'$0'wirddurchdasersteStringargumentersetzt,jedes'$9'
würdedurchjedesneunteStringargumentersetztwerden.Esstehenalso
maximalzehnsolchePlatzhalterzurVerfügung.
WeiteruntenfolgeneinigeBeispiele,dieunteranderemdieVerwendung
dieserArgumentersetzungbeleuchtensollen.
FürfauleBenutzergibtesdieMöglichkeit,aufdieExtension'.COM'zu
verzichten,auchwenndieBatchdateidiesebesitzensollte.Kannder
InterpretereinenangegebenenBatchfilenichtfinden,versuchternoch
durchAnhängenvon'.COM'zumErfolgzukommen.Beispielsweisewürde
dieDatei'BSP.COM'durch"batchbsp"äÇunddurch"batchbsp.com"
aufgerufenwerden.IchmöchteandieserStellebetonen,daßein
BatchfiledurchauskeineExtensionhabenmuß.JedergültigeFilename
kannfüreineBatchdateiverwendetwerden!
Eskönnenmaximalê3ÇBatchfileszurgleichenZeitlaufen(sichgegensei⑨
tigaufrufen)!DieArgumentesindinjedemdieserdreimöglichen
Dateienunterschiedlich,d.h.besitztFileAdieBelegung'BEISPIEL'
für'$0'undruftdannFileBauf,soistdort'$0'unbesetzt,wenn
beimAufrufkeinArgumentêexplizitÇangegebenwordenist.
DasmitdenArgumentenmöchteichandieserStellenochaneinem
kleinenBeispielzuverdeutlichenversuchen.
Ichgehemaldavonaus,daßmansichinêcommand.prgÇbefindet.Die
folgendeEingabesequenzerzeugtnuneineBatchdatei'BSP.COM',die
nichtsanderesmacht,alszweiArgumentemitüechoÇauszugeben.Der
BenutzerkanndarandieWirkungderü$Ç-ErsetzungdurchEingabeparameter
erkennen(hoffentlich).
♪⑥ü 80>echo|bsp.com
81>echo||bsp.comecho$0$1
82>batchbsp.comarg1arg2
arg1arg2
83>
Ç
JenachdemmitwelchenArgumentendieseDateinunaufgerufenwird,
ändertsichdieAusgabe.Mansolltesichruhigauchmalanschauen,
welcheAusgabebeifehlenderArgumentangabekommtbzw.beiAngabevon
dreiodernochmehrParametern.
♪②ê->@<file>[arg0...arg9]
ÇAnalogzubatch,nurdiesmalmitü@Ç.DiesesKommandoisteinfachnurfür
dieLiebhabervonVMSgedacht.
Ç
♪②ê->?arg<argumentnummer><label>
ÇWurdeeinBatchfilemitdemArgumentversorgt,sowirdzu'label'
gesprungen(eine'$0'-Überprüfungwirdz.B.durch"?arg0ist_da"
repräsentiert).
ê
♪②->?batch
ÇGibtdieAnzahldergeradelaufendenBatchdateienaus.Eskönnen,wie
bereitsangesprochen,maximaldreiBatchdateiengleichzeitigoffen
sein.
♪②ê->restart
ÇBefehlinnerhalbeinerBatchdateizumNeustartderDatei,alsodie
ganzeChosewiedervonvorne,d.h.SprungzurerstenBefehlszeile.
♪②ê->wait
ÇWartenaufdasDrückeneinerTaste.DieAbarbeitungeinesBatchfiles
wirdsolangeangehalten,biseineTastegedrücktwird.
WirdandieserStelleü^ZÇgedrückt,erfolgteinAbbruchderBatchbear⑨
beitung!
DiesesKommandokannz.B.dazuverwendetwerden,dieAbarbeitungeines
BatchfilessolangeanzuhaltenbiseinausgegebenerTextgelesenworden
ist.
♪②ê->stop
ÇStoppeneinesBatchfiles.
♪②ê->?stop
ÇBedingtesStoppeneinerBatchdatei.DerBenutzerwirdgefragt,obder
Batchfileangehaltenwerdensoll(dievoreingestellteAntwortist
übrigensêneinÇ).
♪②ê->break
ÇEswerdenêsämtlicheÇlaufendenBatchfilesgestoppt,d.h.rufteine
Batchdateieineandereauf,inderdanndieserBefehlsteht,werden
beideFilebearbeitungenabgebrochen(imGegensatzzuüstopÇ).
♪②ê->text
ÇJedesKommandoinnerhalbdesBatchfilessollaufdemBildschirm
angezeigtwerden.DieseEinstellungistdefault.
MitüflagsÇkanndieaktuelleEinstellungangeschautwerden.
♪②ê->notext
ÇDieUmkehrungzuütextÇ.NachdiesemKommandowerdendieBatch-Dateikom⑨
mandosnichtmehrausgegeben.
♪³ê->errorbreak
ÇNormalerweisewirdeineBatchbearbeitungabgebrochen,wenneinFehler
auftritt.DieskanndurchüerrorbreakÇein-bzw.ausgeschaltetwerden
(abhängigvondergeradeaktuellenEinstellung,diemitüflagsÇmal
wiederangeschautwerdenkann).
♪③ê->lbl<marke>
Ç(kompletterName:älabelÇ)
EinführungeinerSprungmarkeineinemBatchfile.
DieseMarkenkönnenmitügotoÇundeinigenanderenBefehlenangesprungen
werden.
ZumAufbauvonSchleifeninBatchdateienmußmitdiesenAnprungmarken
gearbeitetwerden.
IneinerülblÇ-ZeiledürfensonstkeineBefehlestehen!Alsowärez.B.
lblbeispielechodiesisteinBeispiel
nichterlaubt(eskommenzweiKommandos,ülblÇundüechoÇ,vor).
♪②ê->goto<marke>
ÇSprungzurangegebenenMarke(vgl.ülblÇ).
♪②ê->exist<file><marke>
ÇEswirdgetestet,obdieDatei'file'existiert.IstdiesderFall,
wirdzu'marke'gesprungen,ansonstenwirdbeimnächstenBefehl
weitergemacht.
♪⑤BEISPIEL:
existtest.prgpaletti
ExistiertderFile'test.prg'wirdzurMarke'paletti'gesprungen.
♪②ê->size0<file><marke>
ÇExistiertdieDatei'file'nichtoderistihreGrößeNull,wirdzum
angegebenenLabel'marke'gesprungen,ansonstenauchwiederbeim
Folgebefehlweitergemacht(dieumgekehrteFunktionvonüexistÇ).
DieKommandosüsize0ÇundüexistÇsindganzpraktisch,wennesumdie
Compilierung/AssemblierungundLinkungvonSourcefilesgeht.Esgibt
z.B.Compiler,dieaufdasFehleneinesSourcefilesmiteinemBombenha⑨
gelreagieren.DiesesProblemkannmitdiesenBefehlenumgangenwerden.
♪②ê->;[Kommentar]
ÇDurchü;ÇwerdenKommentarzeileneingeleitet,diekeinerleiBefehls⑨
funktionhabenundnurzumbesserenVerständniseinerBatchdatei
beitragensollen.
ü;ÇkannübrigensauchnacheinemBefehlstehen,allesvordemSemikolon
wirdausgeführt,allesdanachwirdignoriert.
DiesesmarkierenvonKommentarbereichenfunktioniertnurinBatchda⑨
teien,wirdimDirektmodusversuchteineKommentarzeileeinzugeben,so
wirddiesewieeinenormaleZeileaufgefaßt,d.h.esdürftewohlzu
einerFehlermeldungkommen.
♪②ê->status
ÇAusgabeeinerVariablen,diezurSteuerunginnerhalbeinesBatchfiles
benutztwird.SiewirdvorjedemAblaufeinerBatchdateiaufNull
gesetzt.
WerdeninnerhalbdesFilesandereProgramme(z.B.Compiler)gestartet,
sowirdderenRückgabewertinüstatusÇabgelegt.Einfehlerhafter
CompilerlaufkannalsozumSprungzueinerbestimmtenMarkeoderzum
AusstiegausdemBatchfileführen.DerBenutzermußallerdingsdie
RückgabewertederProgrammeundihreBedeutungkennen.
EskommtdiesemSystemparameterabernocheineandereBedeutungzu.
JedeFehlermeldungdesInterpretershatineinerFehlernummer,die
dieseVariabledannenthält,ihrenNiederschlag.Damitlassensichin
BatchdateienbestimmteReaktionenaufeventuellaufgetreteneFehler
einbauen(inBASICwürdemanwohlvonäONERRORGOTOÇsprechen).
Ichmöchtenocheinmalhervorheben,daßderBenutzerêkeinenÇdirekten
EinflußaufdieBelegungvonüstatusÇnehmenkann!Siewirdnurbeim
StarteinesBatchfilesaufNullgesetzt,bzw.wenneinexternes
ProgrammdenRückgabewertNullliefert.Solltejemandmitdieser
Einschränkungnichtlebenkönnen,mußersichhalteinenBatchfile
schreiben,dernichtsmachtunddiesendannaufrufen;dasErgebnisist
danneinüstatusÇ-WertNull.
WirdnurderBefehlüstatusÇeingegeben,erfolgtdieAusgabedes
Variablenwertes.DamitlassensichalsoRückgabewertebestimmen.
üstatusÇisteinLonginteger(32-Bit).
♪②ê->oldy<fileA><fileB><label>
ÇWenndasErstellungsdatumvon'fileA'vordemvon'fileB'liegt,wird
zu'label'gesprungen.
MitdiesemBefehlistesmöglich,eigeneMAKE-Umgebungenzuerstellen.
ImAnhangbefindetsicheinBeispiel,daßsichmitderVerwendung
diesesBefehlsauseinandersetzt.
♪③ê->shiftarg
Ç(kompletterName:äshiftargumentÇ)
VerschiebtexistierendeArgumenteumeinePositionnachlinks.Das
ersteElementfälltdabeiheraus.
ExistierenkeineElemente,hatdiesesKommandokeineFunktion(es
erfolgtükeineÇFehlermeldung)!
Existierenz.B.diedreiArgumenteARG1,ARG2undARG3,dannwäreARG1
Ç$0zugeordnet,ARG2$1undARG3$2.üshiftargÇwürdenunARG1löschenund
diebeidenverbleibendenArgumenteumeinsnachlinksschieben,d.h.
ARG2wärenun$0zugeordnetundARG3$1.$2besitztkeinArgumentmehr.
MitdiesemBefehlkanninBatchdateienaufeinevariableAnzahlvon
Eingabeparameterneingegangenwerdenbzw.dieErstellungvonSchleifen
istflexiblergeworden.
♪③ê->setarg<argument(e)>
Ç(kompletterName:äsetargumentÇ)
MitdiesemKommandolassensichü$Ç-Parameterbelegen.Dabeiwirdimmer
dererstefreieParameterbelegt.ÜbersteigtdieAnzahldabeizehn
Parameter,werdendieüberzähligenArgumenteignoriert.
Währe$0bereitsmitStringäXYZÇbelegt(z.B.durcheineParameterangabe
beimAufrufdesBatchfiles),würdederBefehl"setargabc"$1mitdem
StringäabcÇbelegen.
♪②ê->inquire[string]
ÇDieserBefehlstelltdasinteraktiveÄquivalentzuüsetargÇdar.
StößtderKommandinterpreterineinemBatchfileaufdiesesKommando,
mußderBenutzereinodermehereArgumenteeingeben.Diesewerdendann
wiebeiüsetargÇaufdieü$Çsverteilt.
'string'repräsentiertdenText,derdenBenutzerzurEingabeauffor⑨
dert.DieseAngabeistoptional.
BEISPIEL:
ü?arg0gibt_argument
inquireArgument
Ç ülblgibt_argument
echo$0
ÇDieseZeilensolleneinenBeispielbatchfiledarstellen.Wirddiesermit
einemArgumentaufgerufenerfolgteindirekterSprungzuüechoÇ,anson⑨
stenwirdderBenutzeraufgefordert,einArgumenteinzugeben.
♪③ê->cleararg
Ç(kompletterName:äclearargumentÇ)
LöschtallevorhandenenParameterbelegungenfürü$Ç-Argumente.
♪③ê->ifarg<string1><string2><label>
Ç(kompletterName:äifargumentÇ)
Wenn'string1'gleich'string2'ist,wirdzu'label'gesprungen.
DieserBefehlisthauptsächlichfürdieflexibleReaktionaufunter⑨
schiedlicheEingabeparameterinBatchdateiengedacht.
♪②ê-><><intvalue>
ÇIstüstatusÇungleich'intvalue'(Integerzahl),wirdderBatchvorgang
abgebrochen(z.B.nacheinemfehlerhaftenCompilerdurchlauf).
Ç
♪②ê-><<intvalue>
ÇIstüstatusÇkleinerals'intvalue'wirdderBatchfileabgebrochen.
♪②ê->><intvalue>
ÇIstüstatusÇgrößerals'intvalue'wirdderBatchfileabgebrochen.
♪②ê->==<intvalue>
ÇIstüstatusÇgleich'intvalue'wirdderBatchfileabgebrochen.
♪⑤ê->?status=<zahl><label>
->?status#<zahl><label>
->?status><zahl><label>
->?status<<zahl><label>
ÇIstüstatusÇgleich,ungleich,größeroderkleineralseinebestimmte
'zahl'sollzurMarke'label'gesprungenwerden.
Damitkannz.B.nacheinemfehlerhaftenCompilerdurchgangdirektzu
einemEditoraufrufgesprungenwerden.
EsgibtaberauchnochandereinteressanteMöglichkeiten.Gibtz.B.ein
bestimmtesProgrammjenachinternemLaufbzw.ResultatandereParame⑨
ternachProgrammendezurück,kannmithilfevonüstatusÇeinBatchfile
aufgebautwerden,deraufdieseunterschiedlichenRückgabenindividuell
reagiert(z.B.Steuerungsaufgabenlassensichdamitrechtproblemlos
bewältigen).
♪②SoweitdieetwasspeziellerenBatchfile-Kommandos,diedasArbeiten
mitdiesenDateienbesondersunterstützensollen.
BefindetsichimVerzeichnis,dasêcommand.prgÇenthält,dieDateiê
auto.comÇ,sowerdendiedarinenthaltenenBefehlebeimStartdes
Interpretersausgeführt.EslassensichaufdieseWeisez.B.Funktions⑨
tastenvorbelegenoderbestimmteFlagssetzen.
♪≤ê6.3 Beispiele
Ç
ä6.3.1 Bsp.1
Ç
ü ;
;BatchfilezurCompilierungundzumLinkeneinesC-Files
;durchdenMEGAMAX-C-Compiler
;
mmcc.ttp$0.c ;AufrufdesCompilers
<>0 ;Abbruch,wennFehleraufgetretenist
mmlink.ttp$0.o-O$1 ;AufrufdesLinkers
<>0 ;AbbruchimFehlerfall
rm$0.o ;LöschendesObjektfiles
Ç
DasvorliegendeBeispielkanndirektzurArbeitmitdemMEGAMAX-C-
Compiler(nichtLASER-C!)herangezogenwerden(ggf.mußmannatürlich
nochPfadnamenfürdasCompiler-undLinkerprogrammanfügen).
DieerstenvierZeilendienenlediglichderKommentierungderBatchda⑨
tei.InZeilefünfwirdderCompileraufgerufen.'$0'repräsentiertden
NamendesSourcefiles(EingabeohneExtension!).
DerCompilergibtbeieinemerfolgreichenDurchlaufeineNullzurück.
AndernfallssorgtZeilesechsfüreinenAbbruchderBatchbearbeitung.
NachderCompilierungsollderObjektfilegelinktwerden.Diesge⑨
schiehtinZeilesieben.SolltendortProblemeaufgetretensein,
erfolgtinZeileachteinAbbruch.
InZeileneunwirdderaufgetreteneObjektfilewiedergelöscht.In
ZeilesiebenwirdübrigenseinzweitesArgumentbenutzt.Diesesgibt
denNamendeslauffähigenProgrammsan(diesmalmitExtension).
♪③EinAufrufdieserBatchdateikönntenunfolgendermaßenaussehen:
batchcccommandcommand.prg
♪③äquivalentdazuwärederAufruf:
@cccommandcommand.prg
EswirdalsoderC-File'command.c'compiliertundgelinkt.Derdaraus
resultierendeFilesoll'command.prg'heißen.Derzwischenzeitlich
entstehendeFile'command.o'wirddurchdenürmÇ-Befehlgelöscht.
DieeigentlicheBatchdateiheißt'cc'.DieParameterangaben'$0'und
'$1'werdendurchdieArgumente'command'(für'$0')und'command.prg'
(für'$1')ersetzt.
DaszweiteBeispieldientdemgleichenZweck,nursolldiesmalimFalle
ÇeinesFehlerseinEditor('editor.prg'genannt)aufgerufenundnach
erfolgterEditierungwiederzumAnfangderBatchdateigesprungen
werden:
♪ ä6.3.2 Bsp.2
Ç
ü ;
;BatchfilezurCompilierungundzumLinkeneinesC-Files
;durchdenMEGAMAX-C-Compiler
;
mmcc.ttp$0.c ;AufrufdesCompilers
?status#0edit ;SprungzumEditor,wennFehler
mmlink.ttp$0.o-O$1;AufrufdesLinkers
?status#0edit ;SprungzumEditor,wennFehler
rm$0.o ;LöschendesObjektfiles
stop ;StoppendesBatchfiles
lbledit ;Label'edit'
wait ;inallerRuheFehlermeldungenlesen
editor.prg$0.c ;Editoraufruf
restart ;NeustartdesBatchfiles
Ç
DieInterpretierungdiesesFilesdürftenachdenvorhergehendenAusfüh⑨
rungen,keineProblememehrbereiten.
♪Φä6.3.3 Bsp.3
Ç
ü ;
;BatchdateizurAssemblierungvonSourcefiles
;mitdemAssemblerausdemEntwicklungspaketvonDRI
;
notext ;keinGeschwafel
cls
size0$0.sfehler ;Sourcefilemußschondasein
echo1.Assemblierung ;ersterSchritt
as68.ttp-l-u$0.s
size0$0.ofehler ;ErgebnisderAssemblierung
echo2.Linken ;zweiterSchritt
echo$0.s==>$0.$1
link68.ttp[u]$0.68k=$0.o ;Linkendes'o'-Files
size0$0.68kfehler ;wennkeinErgebnis->Fehler
echo3.Relativlader
relmod.ttp$0.68k$0.$1 ;Ergebnisbasteln
rm$0.68k$0.o ;überflüssigeFileslöschen
echo
stop
lblfehler ;Fehlermelden
echo!!!AbbruchwegenFehler!!!
echo
Ç
MitdiesemFilekanndieAssemblierungvonFilesdurchdenAssembler
desEntwicklungspaketsautomatisiertwerden.DieseDateibenötigtzwei
Argumente,zumeinendenNamendesSourcefiles(ohne'.s'-Extension)
undzumanderendieExtensionderZieldatei,also'.PRG','.TOS',
'.ACC'oder'.TTP'.
♪③Willmanz.B.denFile'test.s'assemblieren,könntederAufruf
folgendermaßenaussehen:
@astestprg
Eswirddabeiangenommen,daßdieBatchdatei'as'heißt.DerErgebnis⑨
filewürdehier'test.prg'heißen.
ë7 Variablen
Ç
DieletzteSteuermöglichkeiteinesBatchfileswirddurchdieEinführung
derbereitskurzangesprochenenVariablengeboten.
DerBenutzeristinderLage,Variablenzudefinierenundkannmit
dieseneinfacheRechnungendurchführen,Schleifenaufbauenoderdurch
SprunganweisungenbestimmteAbläufevonBatchdateienerzeugen.
Mansiehtvielleichthierschon,daßdieVariableninderHauptsache
zumeinfacherenArbeitenmitBatchdateienbeitragensollen.Vieleder
hieraufgeführtenKommandossindnurinsolchenDateiensinnvollund
zulässig!
êDieBefehleimeinzelnen('|'bedeutet"entwederoder"):
Ç
♪②ê->let<var><zahl|varvalue>
ÇBelegenvon'var'mitdemWert'zahl'oder'value'
♪⑤BEISPIEL:
letindex111
DieVariable'index'wirdmit111belegt.
letindex2index
♪②
DieVariable'index2'wirdmitdemWertderVariablen'index'belegt.
♪⑤ê->if<varA>=<varB|zahl><label>
->if<varA><><varB|zahl><label>
->if<varA>><varB|zahl><label>
->if<varA><<varB|zahl><label>
ÇDamitkanninBatchfileseinfröhlichesHin-undHergespringeveran⑨
staltetwerden.DieBedeutungwirdwohldurchBeispieleameinfachsten
vermittelt:
♪⑤BEISPIEL:
ifindex=22marke1
WenndieVariable'index'denWert22hat,sollzurMarke'marke1'
gesprungenwerden.
♪③ifparameter<>indexmarkex
WenndieVariable'parameter'ungleichderVariablen'index'ist,soll
zurMarke'markex'gesprungenwerden.
♪³ê->--<variable(n)>
ÇDekrementiereneinerodermehrererParameterumeins.
♪⑤BEISPIEL:
--indexjuhu
DiebeidenVariablen'index'und'juhu'werdenumeinserniedrigt.
♪②ê->++<variable(n)>
ÇAnalogzuü--Ç,nurdaßdiesmaleinsdazuaddiertwird.
♪②ê->-=<varA><varB|zahl>
ÇErniedrigenvon'varA'um'varB'oder'zahl'oderandersausgedrückt:
varA:=varA-varB
varA:=varA-zahl
'varB'kannübrigensdiegleicheVariablewie'varA'sein.Indiesem
Fallewürdedasbedeuten,daß'varA'nachderOperationdenWertNull
hat.
♪⑤BEISPIEL:
-=index12
VonderVariablen'index'wird12abgezogen.
♪③-=indexjuhu
VonderVariablen'index'wirdderWertdesParameters'juhu'abgezo⑨
gen.
♪②ê->+=<varA><varB|zahl>
ÇAnalogzuü-=Ç,nurdaßdiesmaleineAdditionstattfindet.
♪②ê->*=<varA><varB|zahl>
ÇAnalogzuü-=Ç,nurdaßdiesmaleineMultiplikationstattfindet.
♪②ê->/=<varA><varB|zahl>
ÇAnalogzuü-=Ç,nurdaßdiesmaleineDivisionstattfindet.
♪②ê->2*<variable(n)>
ÇVerdoppelnvonVariablenwerten.
♪√ÇBEISPIEL:
2*indexjuhu
'index'und'juhu'habenhierihreWerteverdoppelt.
♪②ê->2/<variable(n)>
ÇHalbierenvonVariablenwerten.
DadieVariablenvomTypIntegersind,werdenungeradeVariablen
natürlichnichtdenkorrektenWerterhalten,11/2würdeimWert5
resultierenundnichtin5.5!
♪⑤BEISPIEL:
2/index
Hat'index'vorAusführungdesKommandos222enthalten,stehtdanach
111inderVariablen.
♪②ê->print<variable(n)>
ÇAusgabederVariablenwerteaufdemBildschirm.
♪⑤BEISPIEL:
printindexjuhu
HierwerdendieInhaltevon'index'und'juhu'ausgegeben.
♪②ê->clear
ÇAlleVariablenwertewerdenaufNullgesetzt,d.h.abernicht,daßdie
Variablenlisteentferntwird,dafürgibtesdasfolgendeKommando:
♪②ê->erase
ÇDieVariablenlistewirdentfernt.
♪②ê->vardump
ÇAllevorhandenenVariablenwerdenmitihrenWertenaufdenBildschirm
ausgegeben.DieserBefehlverschafftdemBenutzerimmereinenÜber⑨
blick,welcheVariablenexistieren,wiegroßihreAnzahlist,mit
welchenWertensiegeradebelegtsindundwosiesichinder
Variablenlistebefinden.
♪③ê7.1 AllgemeineszudenVariablen
Ç
AlleVariablensindvomTypLonginteger(32Bits).
NeueVariablenkönnennichtnurdurchdenületÇ-Befehleingeführtwerden.
JederBezugaufeineVariable,dienochnichtexistiert,erzeugteinen
ÇVariableneintragundsetztdenaktuellenVariablenwertaufNull!
DieVariablensindineinerPointerliste,diedenjeweiligenVariablen⑨
namenundWertenthält,organisiert.
♪③ê7.2 Beispiel
Ç
AneinemBeispielsollgezeigtwerden,daßmitHilfederVariablen
nichtnurZählschleifeninBatchfilesaufgebautwerdenkönnen.
DerfolgendeBatchfiledientzurCompilierung,LinkungundCodeverbes⑨
serungdereinzelnenSourcefiles,ausdenenderKommandointerpreter
besteht.
DieSourcefilesheißenimeinzelnen'COMMAND.C','COM.C'und'EDI.C'.
DieBatchdateisollnuninderLagesein,jedeneinzelnendieserFiles
zucompilierenoderdenObjektcodezuverbessern.Zusätzlichmußdie
Möglichkeitgegebensein,dieentsprechendenObjektfileszusammenlinken
zukönnen,sodaßêcommand.prgÇalsEndproduktentsteht.
JededieserAnforderungenmußüberParametereingabeandieDatei
einzelnerfülltsein.
♪③DasEingabeformatsollfolgendermaßenaussehen:
@cc<file>[aktion]
'cc'repräsentiertdabeidieBatchdatei.<file>isteinerderoben
genanntenFiles(ohneExtension!).[aktion]steuertdasVerhaltendes
Batchfiles.WirddieserParameterweggelassen,sollderangegebeneFile
compiliertwerden.DarananschließendeineCode-Verbesserungdurchge⑨
führtwerdenundzumSchlußdasganzezusammengelinktwerden.
Wirdfür[aktion]'lc'oder'cl'eingegebenwird,nurderCompiler
gestartetunddasganzezusammengelinkt.
BeiEingabevon'il'oder'li'wirdeineCode-Verbesserungdurchgeführt
unddannderLinkvorganggestartet.
'l'resultiertineinemLinkvorgang.
'c'startetnurdenCompiler.
'i'führteineCodeverbesserungaus.
♪⑤MöchtemandenFile'COMMAND.C'compilierenundmitdenanderenFiles
zusammenlinken,müßtealso
@cccommandlc
eingegebenwerden.
ê
♪∞ê7.2.1 DerFileîcc
Ç
ü ;
;BatchfilezurCompilierungeinesC-Filesvoncommand.prg
;
notext ;keineKommandoausgabeaufSchirm
cls
;
;Steuervariable
;
let$10 ;allesausführen
letlc4 ;compilierenundlinken
letcl4 ;-"-
letl1 ;linken
letc2 ;compilieren
leti6 ;Codeverbessern
letil5 ;verbessernundlinken
letli5 ;-"-
if$1=1linken
if$1>4improve
mmcc.ttp$0.c ;Compilerabteilung
?status#0exit ;imFehlerfall
if$1=2exit ;nurCompilerlauf
if$1=4linken
lblimprove ;Improve-Abteilung
mmimp.ttp$0.o
?status#0exit ;Fehleraufgetreten
if$1=6exit
lbllinken ;Linkerabteilung
mmlink.ttpcommand.ocom.oedi.o-Ocommand.prg
lblexit
Ç
Ichglaube,damitisteinesinnvolleVerwendungfürVariablendeutlich
geworden.
Esistrelativeinfach,diesenFileaneigeneBedürfnisseanzupassen.
DieVorgehensweisedürftekeinegroßenVerständnisproblemeaufwerfen.
ë8 EDI
Ç
EDIisteinzeilenorientierter(Primitiv-)Editor.Ersollzumschnel⑨
lenModifizierenvonKleinigkeiteninBatchfileso.ä.dienen.Zum
SchreibenvonProgrammenoderzumBetreibenvonTextverarbeitungsollte
maneinenanderenEditorverwenden(z.B.TEMPUS,EMACSu.s.w.).
DerVorteildieseseingebautenProgrammteilsliegtinderschnellen
Verfügbarkeit;Ladezeiten,wiesiefürdieVerwendungeinesexternen
Editorsbenötigtwerden,entstehennicht.
DerAufruferfolgtmit"edi<filename>".
JedeeingeleseneZeiledarfhöchstensê76ÇZeichenlangsein!Kommen
längereZeilenvor,erfolgteinStutzenderZeile(êohneWarnung!Ç).
TabulatorzeichenwerdeninBlanksumgewandelt(darankannmanerkennen,
wieeinfachderEditorist)!
BeiAngabeeinesnichtexistentenFiles,wirddieserbeiVerlassenvon
EDI(via's')erzeugt.EswirdkeineWarnungausgegeben,daßeine
nichtvorhandeneDateiangegebenwordenist!
♪④ê8.1 DieKommandosvonEDI
Ç
EsgiltjeweilsderindieHochkommaseingeschlosseneBuchstabe,die
üRETURNÇ-TastewirdzumAbschließenderEingabenichtbenutzt!
ê'ëeê'(dit)EditiereneinerZeile
ÇNachEingabevon'e'wirdeineZeilennummerangefordert.Daseigent⑨
licheEditierengehtgenauwiebeiderEingabevonKommandos,alsomit
denCursortasteu.s.w.SolleneingegebeneÄnderungennichtübernommen
werden,kannmitü^ZÇeinAbbruchdesKommandosdurchgeführtwerden.
♪②ê'ëlê'(ist)AuflistendeseingelesenenFiles
ÇEswirdnachEingabevon'l'dergewünschteZeilenbereichangefordert.
Wirdbei'START:'einfachnurRETURNgedrückt,erfolgteinkomplettes
AuflistendesFiles.
EinvorzeitigesAbbrechendesListvorgangsistmitü^ZÇmöglich.
üF1ÇunterbrichtdieAusgabe,mitüF1Çwirdwiederfortgefahren.
♪②ê'ëpê'(rint)Printerausgabe
ÇDeranalogeBefehlzu'list'.DieAusgabeerfolgtallerdingsaufden
Drucker.
DieDruckerinformationenundEinstellungendesülpÇ-Kommandoswerden
ênichtÇberücksichtigt!EshandeltsichwirklichnurumeineAusgabeum⑨
leitungdes'list'-Befehls.
♪³ê'ëfê'(ind)Stringsuche
ÇSuchtnacheinembestimmtenStringinnerhalbvonZeilen.JedeZeile,in
derdereinzugebendeStringvorkommt,wirdausgegeben.
♪②ê'ërê'(eplace)Stringersetzung
ÇEsmußdabeiangegebenwerden,obvordemErsetzungsvorgangeine
Sicherheitsabfrageerfolgensollodernicht.
♪②ê'ëdê'(elete)Zeilenlöschen
ÇEswirdderzulöschendeBereichangefordert.
♪②ê'ëiê'(nsert)neueZeileneinfügen
ÇEswirddieNummerderZeileangefordert,vorderdieneuenZeilen
eingefügtwerdensollen.AbbruchdiesesModusmitü^ZÇ.
♪②ê'ëaê'(ppend)Zeilenanfügen
ÇAnfügenvonneuenZeilenandasFileende.Abbruchwieimmermitü^ZÇ.
♪②ê'ënê'(ew)Gesamtlöschung
ÇLöschtalleZeilen.EsfindetallerdingseineSicherheitsabfragestatt.
♪②ê'ësê'(ave)Abspeichern
ÇAbspeicherndesFilesundverlassenvonEDI.
♪②ê(e)'ëxê'(it)Beenden
ÇVerlassenvonEDIêohneÇabspeichern.
♪②ê'ëhê'(elp)Hilfe
ÇAuflistendervorhandenenBefehlemiteinerkurzenBeschreibungsowie
AngabedesaktuellenFiles.
ë9 Fehlermeldungen
Ç
DerInterpretergibtzahlreicheFehlermeldungenaus.Diesesindhier
miteinerkurzenBeschreibungzusammengefaßt.Mandarfallerdingsnicht
erwarten,daßêcommand.prgÇKorrekturvorschlägemacht.
♪③«missingargument(s)»
Fehlernr.:1
EsgibthaltBefehle,dieerwarteneinfacheinArgumentoderwennsie
ganzunverschämtsind,gleichmehrere.
♪③«directoryisn'tempty»
Fehlernr.:2
Hierwurdeversucht,einnichtleeresVerzeichniszulöschen.
♪③«can'tdeletedirectory»
Fehlernr.:3
MansolltenurOrdnerentfernen,dieesauchwirklichgibt.
♪③«wrongcommandsyntaxorargument»
Fehlernr.:4
KannbeiderZahlenkonvertierungauftauchenoderwennBefehlemit
unpassendenArgumentenversorgtwerden.
♪②«printernotconnected»
Fehlernr.:5
EntwederPrinteronlinestellenoderdasDingeinfachmaleinschalten.
♪②«can'topenfile»
Fehlernr.:6
Passiert,wenneinFilenichtgefundenwerdenkann.
♪③«can'tdeletefile»
Fehlernr.:7
Kommtvor,wennürmÇesnichtschaffteinenFilezulöschen.Zumeinen
passiertdies,wennesdenFilenichtgibt,zumanderenkannderFile
auchvorLöschengeschütztsein.
♪②«commandnotfound»
Fehlernr.:8
KanneineEingabenunüberhauptnichtverarbeitetwerden,kommtdiese
Meldung.
♪③«toomanyarguments»
Fehlernr.:9
MancheBefehlewollenüberhauptkeinArgument,anderenureine
ÇbestimmteAnzahl.BeiÜberfütterungstößtmandannaufdieseMeldung.
♪②«argumentoutofrange»
Fehlernr.:10
Wirdausgegeben,wennbeimütimeÇ-Kommandobzw.beimüdateÇ-Befehlein
fehlerhaftesArgumentangegebenwordenist.
♪②«toomuchbatch-files»
Fehlernr.:11
EsdürfenmaximaldreiBatchdateiengeöffnetsein.
♪②«useonlyinbatch-files»
Fehlernr.:12
EsgibtKommandosdienurdortSinnhaben(z.B.ürestartÇ).
♪②«labelnotfound»
Fehlernr.:13
EineMarkekonntenichtgefundenwerden.
♪②«can'tcreatefile»
Fehlernr.:14
Eswar,auswasfürGründenauchimmer,nichtmöglich,einenFilezu
erstellen.
♪②«wrongdirectory»
Fehlernr.:16
KommtbeimWechselineinennichtvorhandenenOrdnervor.
♪②«don'tuse'*'or'?'»
Fehlernr.:17
KommtbeieinigenBefehlenvor,diesichnuraufEinzelfilesanwenden
lassen(z.B.ühideÇ).
♪②«can'texecute'.acc'-files»
Fehlernr.:18
DerInterpreteristnichtinderLage,Deskaccessoriesauszuführen.
♪②«directoryexists»
Fehlernr.:19
EinOrdnerkannnichtzweimalgebasteltwerden.
♪②«can'tcreatedirectory»
Fehlernr.:20
AusirgendwelchenGründenkanndieKreierungeinesOrdnersnicht
vorgenommenwerden(z.B.Schreibschutz).
♪³Ç«'!'-argumentnotinrange»
Fehlernr.:21
EswurdeversuchtaufeinenaltenBefehlzuzugreifen,dernichtinder
History-Listeist.
♪②«relationunknown»
Fehlernr.:22
ProblemchenbeidenüifÇ-BedingungeninderVariablenabteilung.
♪②«notenoughdisk-space»
Fehlernr.:23
Bedeutungdürfteklarsein.
♪②«filenotopen»
Fehlernr.:24
DasüwriteÇ-Kommandowurdeangewandt,obwohlgeradekeinFilemit
üopenÇ/üappendÇgeöffnetwordenist.
DurchdasWegfallendieserBefehle,gibtesdieseMeldungnichtmehr!
♪②«can'tchangemode»
Fehlernr.:25
FindetbeimüchmodÇ-BefehlVerwendung.
DieFehlernummer15existiertnichtmehr,deshalbdieLücke!
EsgibteinigeFehler,diezumsofortigenProgrammstopdesInterpreters
führen.Sollteesnichtmehrmöglichsein,RAM-PlatzfürEinträge,wie
z.B.dieHistory-ListeoderALIAS,zubeschaffen,tritteinsolcher
Abbruchauf.
DasProgrammwirdübrigensgarnichterstgestartet,wennderReservie⑨
rungsversuchdesInterpreters,dersich32kRAMbesorgenwill,fehl⑨
schlägt.MansolltedannseineRAM-Disketwaskleinermachenoder
einigeAccessoriesentfernen.
IsteinFehleraufgetretenenthältüstatusÇdieFehlernummer.
ë10 DieAusgabeumleitung
Ç
EinigeBefehleerlaubenes,dieAusgabeineinenFileumzuleiten.Dazu
mußdirektandasKommando'|[file]'mitangegebenwerden.
BEISPIEL:
tree|dir.txt
DasDirectoryverzeichniswirdindenFile'dir.txt'geschrieben.
FolgendeKommandossindmitderUmleitungausgestattet:
-tree -time -print -cp -wc
-find -date -status -alias -pwd
-od -cat -flags -df
-dir -more -version-device
-ls -echo -cmp -head
-string-vardump-help
WirddieUmleitungbeiKommandosangewandt,diedieseMöglichkeitnicht
bieten,wirdeinleererAusgabefileerzeugt,sonstpassiertnichts!
Unangenehmwirdesallerdingswenn,z.B.mitüodÇ,einAusgabefilevom
Ausgabefilegemachtwerdensoll.DerFilegehtdannnämlichüverlorenÇ!
BeiAngabevon'|[file]'wirdeineneueDateierstellt,gibtman
hingegen'||[file]'an,erfolgtdieUmleitungandasEndeeinerbereits
bestehendenDatei.Existiertdieseallerdingsnochnicht,wirdeine
neuekreiert(Funktiondannwieein'|[file]').
EskannübrigensauchaufGerätschaftenausgegebenwerden.'dir|PRT:'
sendetz.B.seineAusgabezumDruckerport(Centronics-Schnittstelle).
ü
Ç üPRT:Ç UmleitungzumDrucker
üCON:Ç UmleitungzurKonsole(entsprichtkeinerAngabe)
üAUX:Ç zurRS-232Schnittstelle(nichtgetestet!)
ü MIDIÇ (nichtgetestet)
ë11 AllgemeinesBlablazumSchluß
Ç
ê11.1 Lieferumfang
Ç
-COMMAND.PRG
9 [.................................................]011
dereigentlicheInterpreter.
9[.......................................................]011
-COMMAND.TXT
9 [.................................................]011
dievorliegendeBeschreibung.
9[....................................................]011
-COMMAND.HLP
9 [.................................................]011
wirdfürdenühelpÇ-Befehlgebraucht.
9[...................................................]011
-TEST
9 [.................................................]011
einBatchfile,derzurFunktionsüberprüfungdermeistenKomman⑨
dosdienensoll.MankannanhanddieserDateiauchdie
FunktionsweisederdiversenBefehlerechtguterkennen.
9[...................................................]011
-GETARG.PRG
9 [.................................................]011
einkleinesProgramm,daszurErmittlungderParameterdienen
soll,dieaneinProgrammz.B.durcheineShellübergeben
werden.DamitlassensichverschiedeneAnwendungen,inder
HauptsacheallerdingsCompilerundLinker,andenInterpreter
anpassen.
GETARG.PRGmußnurindenentsprechendenProgrammnamenumge⑨
nanntwerden,danneinfachdennormalenFunktionsablaufstarten
undschonkannmanerkennen,welcheParameterübergebenwerden.
9[...................................................]011
-CC
9 [.................................................]011
einBeispielbatchfile,derzurCompilierungundLinkungvonC-
FilesunterVerwendungdesMEGAMAX-C-Compilersbenutztwerden
kann.TritteinFehlerauf,wirdautomatischeinEditor
aufgerufen,diesermußvomBenutzerdefiniertwerden(siehe
Batchdatei).
9[...................................................]011
-AS
9 [.................................................]011
dieserBatchfileentsprichtdemBeispiel3,daßichweiteroben
gegebenhabe.DamitlassensichAssemblerfilesdurchden
AssemblerundLinkerausdemEntwicklungspaketzulauffähigen
Programmenübersetzen.
9[........................................................]011
ê
♪③11.2 ZurProgrammierung
Ç
ProgrammiertwurdedasganzeDingmitdemMEGAMAX-C-Compiler(V1.1).
ÇEineganzeMengevondemCodeistallerdingsinAssemblergeschrieben
(InlineassemblervomMEGAMAX).
AlsProgrammeditorwurde,inderHauptsache,derMicroEMACSbenutzt.
Deristzwarnichtgeradeberühmt,wasGeschwindigkeitsrekordeangeht,
abersonstziemlichmächtig(vorallemverarbeiteteraufeinerecht
vernünftigeArtundWeiseTabulatoren).
InzwischenbinichallerdingswegenderGrößederSourcefilesauf
TEMPUSumgestiegen,vielleichtkommtjasogarmaleineVersion,diees
aucherlaubt,dieTabulatortastezuverwenden.
ImLaufederZeitsindimmerwiederNeuerungenundVerbesserungen
dazugekommen.LeiderhabensichvieleVerbesserungeninderFolgeeher
alsVerschlimmbesserungenentpuppt.UmdiesemUmstandRechnungzu
tragen,habeichdenFileêtestÇgebastelt,derdiemeistenKommandosauf
ihreFunktionsfähigkeithinüberprüft.
BeiderArbeitmitdemProgrammkannesvorkommen,daßmanaufFehler
stößt.EineganzeMengesindseitderVersion1.04entferntworden,
aberichfürchte,daßesdochnocheinigegibt.EinpaarderFehler
liegenimBetriebssystem,andenenkannichleidernichtvieländern.
ObesmitdemneuenTOSProblemegebenwird,bleibtnochabzuwarten.
TheoretischdürftedieseigentlichnichtderFallsein,daichnur
offizielleRoutinenbzw.Systemaufrufebenutzthabe,eigentlichmüßten
beieinerfehlerfreienneuenTOS-VersionaucheinigeProblemedes
Interpretersverschwinden.
WennmanaberdieGeschwindigkeitsieht,mitderATARIdieneueTOS-
VersionderÖffentlichkeitzugänglichmacht,braucheichmirhierwohl
wedergraueHaarewachsenzulassennochsolltemangroßartige
Hoffnungenhegen.
DaesscheinbarkeineoffiziellenAngabendarübergibt,welcheRegister
beiGEMDOS/XBIOS/BIOS-Aufrufenverändertwerden,habeichdort,wo
solcheAufrufeimProgrammvorkommen,dieRegisterD2-D7undA2-A6
gerettet.InderHoffnung,daßmirdabeikeinFehlerunterlaufenist...
DaMEGAMAXfürFunktionenwiez.B.ügetc()Çoderüfopen()Çwohlauchauf
dieseAufrufeaufbaut,geheichmaldavonaus,daßdieEntwickler
diesesCompilersdienotwendigenRegisterretten.
NachderAbarbeitungvonexternenProgrammenwerdennuneinigeZeiger
wiederrestauriert(z.B.fürdieMausroutinen).Damithabensicheinige
Probleme,diedurchdieZeigerverbiegerei,ausgelöstdurchirgendwelche
Programme,entstandensind,inLuftaufgelöst.
TrotzdemgibtesimmernochProgramme,diesichgarnichtmitdem
Interpretervertragen;bisjetztistmirderentscheidendeGedanken⑨
blitzzurBeseitigungdieserRestriktionnochnichtgekommen.
SauberprogrammierteAnwendungenlaufenaberklaglos.
Ç
AndemProgrammerhebeichvonmeinerSeitekeinerleiCopyrightsoder
ähnlicheAnsprüche,eskannvonjedembeliebiggenutztundweitergege⑨
benwerden.
Natürlichwäreesrechtnett,wennbeieinersolchenWeitergabe
wirklichalleFilesdabeisind,dasProgrammistz.B.ohneausreichende
Beschreibungnichtallzuvielwert.
♪②InteressentenamSourcecodekönnendiesengegenEinsendungeiner
LeerdisketteundeinesfrankiertenRückumschlagsbekommen.
DaichandemProgrammimmernochÄnderungendurchführe(neueBefehle
einbauen,Fehlerentfernen...),enthältdieseSourcecodediskettedann
auchdiejeweilsneuesteVersion,sowieeinigeUtility-Programme.
DieseSourcecode-Kopiekostetnatürlichnichts(außerdembereits
erwähntenPorto,derVerpackungundderDiskette);essolltenfürmich
einfach,außerderZeit,keineKostenentstehen.
Anregungen,FragenundvorallemMeldungenvonaufgetretenenProgramm⑨
fehlernbitteichanmichzuschicken:
JoachimWolf
Heubergstr.3
7014Kornwestheim
Tel.:07154/7979
ü12 ANHANGAÇ(Befehlszusammenfassung)
9[........................................................]011
! ZugriffaufaltesKommando
# Dezimalwertumrechnen
$ Hexwertumrechnen
*= Variablenmultiplikation
++ Variableinkrementieren
+= Variablenaddition
-- Variabledekrementieren
-= Variablensubtraktion
/= Variablendivision
2* Variableverdoppeln
2/ Variableteilen
; Kommantarzeile
< Statusabbruchbedingung
<> Statusabbruchbedingung
== Statusabbruchbedingung
> Statusabbruchbedingung
?arg SprungzuLabel,wennArgumentexistiert
?batch zeigtAnzahloffenerBatchdateien
?ok Virusüberprüfung
?status# status-Sprungbedingung
?status< status-Sprungbedingung
?status= status-Sprungbedingung
?status> status-Sprungbedingung
?stop bedingtBatchfilestoppen
@ Batchfileaufrufen
\ Oktalwertumrechnen
alias Belegungenausgeben
batch Batchfileaufrufen
bell einmalklingeln
break AbbruchderBatchbearbeitung
cat File(s)ausgeben
cd Ordnerwechseln
chmod Fileattributeändern
clear Variablenwertelöschen
cleararg löschtvorhandenü$Ç-Argumente
cls Bildschirmlöschen
cmp Filevergleich
compress Filekomprimierung
cp File(s)kopieren
crsoff Cursorausschalten
crson Cursoreinschalten
crypt Fileverschlüsselung
date Datumausgeben/setzen
defkey Funktionstastebelegen
Çdelalias Alias-Eintragentfernen
device AusgabederansprechbarenMassenspeicher
df SpeicherplatzaufDiskette
dir File(s)auflisten
echo Stringausgeben
edi Editoraufrufen
erase Variablenlisteentfernen
errorbreak BatchabbruchimFehlerfall
exist TestobFilevorhanden
exit Interpreterverlassen
expand komprimierteFilesexpandieren
find File(s)finden
flags Flagausgabe
free freierRAM-Bereich
getalias Belegungeneinlesen
goto SprungzuMarke
h verfügbarealteEingabenauflisten
head dieerstenzehnZeileneinesFilesausgeben
help Hilfefunktion
hide Fileverstecken
history verfügbarealteEingabenauflisten
if...< Variablensprung
if...<> Variablensprung
if...= Variablensprung
if...> Variablensprung
ifarg Sprung,wennzweiStringsgleich
inverse Bildschirmdarstellungumschalten
keyboard AusgabeTastenbedeutungen
keys AusgabederFunktionstastenbelegungen
lbl Markesetzen
let Variablebelegen
lock Rechnersperren
lp File(s)ausdrucken
lpmargin linkerRandbeiListings
lppage AnzahlderSeiteproSeitebeiListings
ls File(s)auflisten
merge Filesverbinden
mkdir neuenOrdner
more File(s)ausgeben
mouseoff Mauszeigerausschalten
mouseon Mauszeigereinschalten
mv Fileumbenennen
newalias Neubelegungeinführen
notext Batchkommandosnichtausgeben
numbers beiListingsZeilennummerausgebenein/aus
od Filedump
Çoldy wennFile1älteristalsFile2,danngehezuLabel
page ListingsmitSeitennummernversehen
path AngabeeinesSuchpfades
pchange beiüpathÇ-BefehlOrdnerwechselein/aus
print Variablenwertausgeben
pwd AusgabedesaktuellenPfades
reset Rechnerzurücksetzen
resetlp Printerinitialisierung
restart anBatchfileanfangspringen
rm File(s)löschen
rmdir Ordnerlöschen
save File(s)nurlesbar
savealias Belegungenabspeichern
setarg setzenvonü$Ç-Argumenten
savehist êhistory.datÇabspeichernein/aus
setlp Printerinitialisierung
settab Tabulatorsetzen
shiftarg verschiebenvonü$Ç-Argumenten
size0 Test,obFilenichtvorhanden
slash '/'->'\'ein/aus
srhist Historyein/aus
srtab automatischeTabulatorfunktionaus-/einschalten
srtitle Titelseitenausgabeein/aus
status Statusausgeben
stop Batchfilestoppen
string Stringsuche
sz AusgabeBetaein/aus
text Batchkommandosausgeben
time Zeitausgeben/setzen
tree Ordnerstrukturauflisten
unsave File(s)les-&schreibbar
vardump Variableausgeben
version Erstellungsdatumausgeben
wait aufTastendruckwarten
wc Zeilen&Ziffernzählen
Ichhoffe,daßichindieseListeallevorhandenenBefehleaufgenommen
habe.
SiesolllediglichalsGedankenstützedienen!DievollständigeSyntax
zueinembestimmtenBefehlistdenvorangehendenAusführungenzu
entnehmen.
ImAnhangfindetsicheinIndex,dereinschnellesAuffindender
gesuchtenKommandosermöglicht.
ü13 ANHANGÇüBÇ(üoldyÇ-Beispiele)
♪3ê13.1 Beispiel1fürdieVerwendungdesëoldyê-Befehls
Ç
ü letkontrolle3
size0command.ocompiliere1
oldycommand.ocommand.ccompiliere1
lblcom
size0com.ocompiliere2
oldycom.ocom.ccompiliere2
lbledi
size0edi.ocompiliere3
oldyedi.oedi.ccompiliere3
lbllinke
ifkontrolle=3ende
linkcommand.ocom.oedi.o-Ocommand.prg
lblende
stop
lblcompiliere1
cccommand.c
<>0
impcommand.o
--kontrolle
gotocom
lblcompiliere2
cccom.c
<>0
impcom.o
--kontrolle
gotoedi
lblcompiliere3
ccedi.c
<>0
impedi.o
--kontrolle
gotolinke
Ç
DasBeispielbeziehtsichwiederaufdiedreiTeile,ausdenender
Kommandointerpreterbesteht.
DerBatchfileüberprüftdasVorhandenseinderObjektfilesbzw.wenn
diesevorhandensind,ihrAlter.Sindsienichtvorhandenoderälter
alsderzugehörigeSourcecode,wirdeinCompilerdurchganggestartet.
DaszweiteBeispielsollzeigen,daßbeiVerwendungandererKommandos
einegewissePlatzersparniszuerzielenist:
♪∩ê13.2 ëoldyê,dieZweite
Ç
ü setargcommandcomedi ;dieQuelldateien
lblloop ;Compilerabteilung
size0$0.cweiter ;Sourcefilefehlt
size0$0.ocompiliere ;Objektfilefehlt
oldy $0.o$0.ccompiliere ;Alterüberprüfen
gotoweiter ;nächstenFile
lblcompiliere ;eigentlicheCompilierung
cc$0.c
<>0 ;rauswennFehler
imp$0.o ;Codeimprover
lblweiter
shiftarg ;nächsteDatei
?arg0loop ;wennnocheinedaist
;sonstEnde
linkcommand.ocom.oedi.o-Ocommand.prg;dasErgebnis
Ç
Ichhoffe,dieseBeispieleverdeutlichendieMöglichkeiten,dieüoldyÇ
bietet.
MankanndamitzwarkeineSuper-MAKE-Umgebungerstellen,aberKleinvieh
machtauchMistundaufgrundderEinfachheitinderBenutzung,sollte
jeder,deröftersProgrammeerstellt,derenSourcecodemehrereDateien
umfaßt,inderLagesein,einennichtunerheblichenNutzenausdem
Kommandoziehenzukönnen.
ë14 Index
Ç
! ................... 31f,32ff,33ff,53,58
!! .................. 33f
# ................... 28
$ ................... 28
*= .................. 45,58
++ .................. 45,58
+= .................. 45,58
-- .................. 45f,58,61f
-= .................. 45ff,58
/ ................... 11,21,25f,26,28,60
/= .................. 45,58
2* .................. 45,46,58
2/ .................. 46f,58
< ................... 40,59
<> .................. 39,41f,44f,59,61f,62
= ................... 59
== .................. 40,43,58
> ................... 40,59
?arg ................ 36f,39,58,62
?batch .............. 36,58
?ok ................. 7,58
?status ............. 40ff,42f,48f,58ff
?stop ............... 36,58
@ ................... 35f,41,43,47f,58
ALIAS ............... 53
Alias ............... 29f,30f,59
Ausgabeumleitung .... 27
BACKSPACE ........... 4
Batch ............... 3,7,14,29,30,34ff,35ff,36ff,37ff,38ff,39ff,40ff,
41ff,42ff,43f,44ff,47ff,48,49,52,55f,58ff,59f,
60f,61
Bildschirm .......... 7,9,14,17f,19f,20,33,36,46f,58,59
CONTROL ............. 4f
CONTROL-D ........... 4
CONTROL-X ........... 4
CURSOR-DOWN ......... 32,33
CURSOR-UP ........... 32,33
DELETE .............. 4
Directory ........... 8,11,19,22,24,54
Drucker ............. 17f,18,23f,24f,25f,26f,49f,54f
EMACS ............... 49,56
ESC ................. 4f
Fileattribut ........ 8,13,58
Funktionstaste ...... 7,13f,17,58,59
ÇHELP ................ 16
History ............. 3f,25f,31f,32f,33,34,53f,60
INSERT .............. 4
Kommandointerpreter . 3,29,47,61
Laufwerk ............ 5,7,8ff,9,10,11ff,13f,14,15f,19,21f,22f,23,26,
27f,28
MEGAMAX-C ........... 41f,42,55f
MS-DOS .............. 3
Maus ................ 3,19f,20ff,56,59f
Ordner .............. 4,5,7,8f,9f,11,13f,14,16,18ff,21,22,24f,26f,51,
52f,58,59,60f
SHIFT ............... 4f,13
TAB ................. 25f
TEMPUS .............. 49,56
UNIX ................ 3,31
VMS ................. 3,32,35
Variable ............ 38f,44ff,45ff,46ff,47ff,48,53,58ff,59ff,60f
Verzeichnis ......... 4,5f,7f,8f,9,11ff,13,14f,15,16,18f,19,21f,23,26,
29,40,51
\ ................... 8,11f,21,25f,28f,58,60
alias ............... 29ff,30f,54,58
append .............. 27,53
auto.com ............ 40
batch ............... 34,35ff,41,52f,58
bell ................ 7,58
break ............... 36,58
cat ................. 7ff,19f,24,54,58
cd .................. 7,8ff,18,19,25,27,58
chmod ............... 8,9f,16,17,53,58
clear ............... 46,58
cleararg ............ 39,58
close ............... 27
cls ................. 9,43,48,58
cmp ................. 9,10f,32ff,54,58
command.hlp ......... 16
command.prg ......... 3f,29f,35,40,41ff,47,48f,51,61,62
compress ............ 10f,14f,58
counter ............. 34f
cp .................. 6,11ff,32ff,54,58
crsoff .............. 11,58
crson ............... 11,58
crypt ............... 11,12f,58
date ................ 12f,52,54,58
defkey .............. 13f,17,58
delalias ............ 29,59
device .............. 13,54,59
Çdf .................. 13,54,59
dir ................. 4,13f,14ff,16f,18,19,54f,59
echo ................ 14f,35ff,37f,39f,43ff,54,59
edi ................. 48,49,59
erase ............... 46,59
errorbreak .......... 15,37f,59
exist ............... 37ff,59
exit ................ 14,48ff,59
expand .............. 10f,14,59
find ................ 14,15f,54,59
flags ............... 15,20,22,23,24f,25ff,26,36,37,54,59
free ................ 15,59
getalias ............ 29,59
goto ................ 37f,59,61f,62
h ................... 33,59
head ................ 16f,54,59
help ................ 16f,54,55,59
hide ................ 16f,52,59
history ............. 33f,59
if .................. 44ff,48ff,59ff,61
ifarg ............... 39,59
inquire ............. 39f
inverse ............. 17f,59
keyboard ............ 17,59
keys ................ 17,59
lbl ................. 37ff,39,42,43,48f,59,61ff,62f
let ................. 44f,46,48ff,59,61
lock ................ 17f,59
lp .................. 17f,18,23f,25,49,59
lpmargin ............ 15,18,59
lppage .............. 15,18,59
ls .................. 18f,54,59
merge ............... 18f,59
mkdir ............... 18,19,59
more ................ 19f,24,54,59
mouseoff ............ 19,20,59
mouseon ............. 20f,59
mv .................. 20f,59
newalias ............ 30f,59
notext .............. 15,36,43,48,59
numbers ............. 15,20,59
od .................. 20,21f,54f,59
oldy ................ 38,60,61ff,62f
open ................ 27,53
page ................ 15,21,60
path ................ 5,21f,22ff,60f
Çpchange ............. 15,21,22,60
print ............... 46f,54,60
pwd ................. 22,54,60
reset ............... 22,60
resetlp ............. 15,18,23ff,24,60
restart ............. 36,42,52,60
rm .................. 16,23ff,41f,42,43,51,60
rmdir ............... 24f,60
save ................ 23,24,27,60
savealias ........... 29,30f,60
savehist ............ 15,24,60
setarg .............. 39ff,60,62
setlp ............... 15,18,24f,60
settab .............. 15,18,24f,60
shiftarg ............ 38,39,60,62
size0 ............... 37f,43f,60,61f,62f
slash ............... 15,25f,60
srhist .............. 15,25f,60
srtab ............... 15,25,60
srtitle ............. 15,18,25f,60
status .............. 38ff,39,40ff,53,54,58ff,60
stop ................ 36f,42,43,60,61
string .............. 25,26f,54,60
sz .................. 15,26,60
text ................ 15,36f,60
time ................ 26f,52,54,60
tree ................ 26,54f,60
unsave .............. 23,24f,27,60
vardump ............. 46,54,60
version ............. 27,54,60
wait ................ 36,42,60
wc .................. 27,54,60
write ............... 27,53